qidian-vue-ui 1.0.77 → 1.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/upload/index.vue.d.ts +4 -1
- package/dist/components/upload/types.d.ts +1 -0
- package/dist/{en-US-BRgdJEVB.js → en-US-BCWyKocW.js} +2 -2
- package/dist/{en-US-BRgdJEVB.js.map → en-US-BCWyKocW.js.map} +1 -1
- package/dist/{en-US-DY0i8PQq.mjs → en-US-DJI8XPcg.mjs} +2 -2
- package/dist/{en-US-DY0i8PQq.mjs.map → en-US-DJI8XPcg.mjs.map} +1 -1
- package/dist/{index-C-RG1oKB.js → index-CTyL2e-l.js} +38 -11
- package/dist/index-CTyL2e-l.js.map +1 -0
- package/dist/{index-BmODYZnF.mjs → index-RGhLiR39.mjs} +38 -11
- package/dist/index-RGhLiR39.mjs.map +1 -0
- package/dist/qidian-vue-ui.css +15 -0
- package/dist/qidian-vue-ui.js +2 -2
- package/dist/qidian-vue-ui.mjs +1 -1
- package/dist/{zh-TW-B5JmWw65.js → zh-TW-xawlr0UJ.js} +2 -2
- package/dist/{zh-TW-B5JmWw65.js.map → zh-TW-xawlr0UJ.js.map} +1 -1
- package/dist/{zh-TW-BP_yzerF.mjs → zh-TW-z4up4fX8.mjs} +2 -2
- package/dist/{zh-TW-BP_yzerF.mjs.map → zh-TW-z4up4fX8.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/index-BmODYZnF.mjs.map +0 -1
- package/dist/index-C-RG1oKB.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BmODYZnF.mjs","sources":["../src/components/auto-tooltip/index.vue","../src/components/card/props.ts","../src/components/card/index.vue","../../shared/dist/qidian-shared.es.js","../src/components/config-provider/config.ts","../src/components/config-provider/index.ts","../src/components/config-renderer/compute.ts","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBoolean.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNumber.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/set.js","../src/components/config-renderer/utils.ts","../src/components/config-renderer/index.vue","../../../node_modules/.pnpm/@vueuse+shared@14.0.0_vue@3.5.22_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js","../../../node_modules/.pnpm/@vueuse+core@14.0.0_vue@3.5.22_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.js","../src/components/form/props.ts","../src/components/service/props.ts","../src/components/crud/props.ts","../src/utils/auth.ts","../src/directive/hasPermi.ts","../src/directive/hasRole.ts","../../../node_modules/.pnpm/tdesign-vue-next@1.17.1_vue@3.5.22_typescript@5.9.3_/node_modules/tdesign-vue-next/es/_chunks/dep-c68053ef.mjs","../../../node_modules/.pnpm/tdesign-vue-next@1.17.1_vue@3.5.22_typescript@5.9.3_/node_modules/tdesign-vue-next/es/_chunks/dep-8c6ad426.mjs","../../../node_modules/.pnpm/tdesign-vue-next@1.17.1_vue@3.5.22_typescript@5.9.3_/node_modules/tdesign-vue-next/es/_chunks/dep-0f6107c9.mjs","../../../node_modules/.pnpm/tdesign-vue-next@1.17.1_vue@3.5.22_typescript@5.9.3_/node_modules/tdesign-vue-next/es/_chunks/dep-4d4f98d8.mjs","../src/locales/zh-CN.ts","../src/components/config-provider/useConfig.ts","../src/components/service/table.vue","../src/components/service/list.vue","../src/components/dict/props.ts","../src/components/service/select.vue","../src/components/dialog/props.ts","../src/components/dialog/index.vue","../src/components/grid/config.ts","../src/components/grid/index.vue","../src/components/grid/item.vue","../src/components/form/item.vue","../src/components/form/config.ts","../src/hooks/useModal.ts","../src/components/form/index.vue","../src/components/dialog/form.vue","../src/components/crud/search.vue","../src/hooks/useDict/index.ts","../src/hooks/useReadonly.ts","../src/hooks/useDisabled.ts","../src/components/crud/table.vue","../src/components/crud/list.vue","../src/components/crud/define.ts","../src/components/dict/select.vue","../src/components/dict/radio-group.vue","../src/components/dict/checkbox-group.vue","../src/components/dict/tag.vue","../src/components/upload/props.ts","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../src/components/upload/config.ts","../src/components/upload/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-auto-tooltip\">\n <t-tooltip :attach=\"attach\" :placement=\"placement\" :disabled=\"!isEllipsis\" destroy-on-close>\n <template #content>\n <slot name=\"content\">\n <span v-if=\"preWrap\" class=\"pre-wrap\">{{ content }}</span>\n <template v-else>{{ content }}</template>\n </slot>\n </template>\n\n <div\n ref=\"content\"\n v-resize=\"checkEllipsis\"\n :class=\"['qd-auto-tooltip__content', `qd-auto-tooltip__content--${ellipsis}`]\"\n >\n <slot>{{ content }}</slot>\n </div>\n </t-tooltip>\n\n <slot name=\"suffix\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { Tooltip as TTooltip } from 'tdesign-vue-next'\n import { ref, watch, nextTick, useTemplateRef } from 'vue'\n import type { QdAutoTooltipProps } from './types'\n\n defineOptions({\n name: 'QdAutoTooltip'\n })\n\n const props = withDefaults(defineProps<QdAutoTooltipProps>(), {\n ellipsis: 1,\n attach: 'body'\n })\n\n const contentRef = useTemplateRef('content')\n const isEllipsis = ref(false)\n\n function checkEllipsis() {\n const el = contentRef.value\n if (!el) return\n\n isEllipsis.value = el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight\n }\n\n watch(\n () => props.content,\n () => {\n nextTick(checkEllipsis)\n }\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-auto-tooltip {\n width: 100%;\n display: flex;\n align-items: center;\n\n .pre-wrap {\n white-space: pre-wrap;\n }\n\n &__content {\n overflow: hidden;\n text-overflow: ellipsis;\n\n &--1 {\n white-space: nowrap;\n }\n\n &:not(&--1) {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: v-bind(ellipsis);\n }\n }\n }\n</style>\n","export const qdCardProps = {\n bordered: false\n}","<template>\n <t-card v-bind=\"reProps\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-card>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdCardProps } from './types'\n import { computed } from 'vue'\n import { Card as TCard } from 'tdesign-vue-next'\n import { qdCardProps } from './props'\n\n const props = withDefaults(defineProps<QdCardProps>(), qdCardProps)\n\n const reProps = computed(() => {\n const { loadingProps, ...otherOptions } = props\n\n return {\n ...otherOptions,\n loadingProps: {\n size: 'small',\n ...loadingProps\n }\n }\n })\n</script>\n","import { shallowRef, computed, ref, inject, onUnmounted, watchEffect, watch, isRef, unref, onActivated, onDeactivated, onBeforeUnmount, onMounted, getCurrentInstance } from \"vue\";\nconst resizeDirective = {\n mounted(el, binding) {\n const handler = binding.value;\n if (typeof handler !== \"function\") {\n throw new Error(\"[v-resize] 指令需要一个函数作为值\");\n }\n el._resizeObserver = new ResizeObserver((entries) => {\n handler(entries);\n });\n el._resizeObserver.observe(el);\n },\n updated(el, binding) {\n if (el._resizeObserver && typeof binding.value === \"function\") {\n el._resizeObserver.disconnect();\n el._resizeObserver.observe(el);\n }\n },\n unmounted(el) {\n if (el._resizeObserver) {\n el._resizeObserver.disconnect();\n el._resizeObserver = void 0;\n }\n el._resizeHandler = void 0;\n }\n};\nconst resize = {\n install(app) {\n app.directive(\"resize\", resizeDirective);\n }\n};\nconst GLOBAL_OPTIONS = {};\nconst GLOBAL_OPTIONS_PROVIDE_KEY = Symbol(\"GLOBAL_OPTIONS_PROVIDE_KEY\");\nconst getGlobalOptions = () => {\n return GLOBAL_OPTIONS;\n};\nconst definePlugin = (options) => {\n return options;\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (val) => objectToString.call(val);\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isArray = (val) => Array.isArray(val);\nconst isObject$1 = (val) => val !== null && typeof val === \"object\";\nconst isFunction$1 = (fn) => fn instanceof Function;\nconst isNil = (val) => val === null || val === void 0;\nconst isServer = typeof window === \"undefined\";\nconst isDocumentVisibility = () => {\n var _window$document;\n if (isServer || isNil((_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.visibilityState)) return true;\n return window.document.visibilityState === \"visible\";\n};\nconst isOnline = () => {\n var _ref, _window$navigator;\n return (_ref = !isServer && ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : _window$navigator.onLine)) !== null && _ref !== void 0 ? _ref : true;\n};\nconst resolvedPromise = () => new Promise(() => {\n});\nconst get = function(source, path) {\n let defaultValue = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : void 0;\n const paths = path.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\");\n let result = source;\n for (const p of paths) {\n result = Object(result)[p];\n if (result === void 0) {\n return defaultValue;\n }\n }\n return result;\n};\nfunction omit(object, keys) {\n const result = Object.assign({}, object);\n for (const key of keys) {\n delete result[key];\n }\n return result;\n}\nconst warning = function(message) {\n let throwError = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n const msg = `Warning: [vue-request] ${message}`;\n if (throwError) {\n return new Error(msg);\n } else {\n console.error(msg);\n }\n};\nconst refToRaw = (value) => {\n return isRef(value) ? value.value : value;\n};\nconst shallowCopy = (value) => {\n if (isObject$1(value)) {\n return Object.assign(isArray(value) ? [] : {}, value);\n } else {\n return value;\n }\n};\nconst CACHE_MAP = /* @__PURE__ */ new Map();\nconst getCache = (cacheKey) => {\n if (isNil(cacheKey)) return;\n const data = CACHE_MAP.get(cacheKey);\n return data;\n};\nconst setCache = (cacheKey, cacheTime, data) => {\n const oldCache = CACHE_MAP.get(cacheKey);\n if (oldCache !== null && oldCache !== void 0 && oldCache.timer) {\n clearTimeout(oldCache.timer);\n }\n const timer = setTimeout(() => CACHE_MAP.delete(cacheKey), cacheTime);\n CACHE_MAP.set(cacheKey, {\n ...data,\n timer\n });\n};\nfunction debounce(func, wait, options) {\n let lastArgs, lastThis, maxWait, result, timerId, lastCallTime;\n let lastInvokeTime = 0;\n let leading = false;\n let maxing = false;\n let trailing = true;\n const useRAF = !wait && wait !== 0 && typeof window.requestAnimationFrame === \"function\";\n if (typeof func !== \"function\") {\n throw new TypeError(\"Expected a function\");\n }\n wait = +wait || 0;\n if (isObject$1(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n const args = lastArgs;\n const thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function startTimer(pendingFunc, wait2) {\n if (useRAF) {\n window.cancelAnimationFrame(timerId);\n return window.requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, wait2);\n }\n function cancelTimer(id) {\n if (useRAF) {\n return window.cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = startTimer(timerExpired, wait);\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n const timeWaiting = wait - timeSinceLastCall;\n return maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n const timeSinceLastCall = time - lastCallTime;\n const timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = void 0;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = void 0;\n return result;\n }\n function cancel() {\n if (timerId !== void 0) {\n cancelTimer(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = void 0;\n }\n function flush() {\n return timerId === void 0 ? result : trailingEdge(Date.now());\n }\n function pending() {\n return timerId !== void 0;\n }\n function debounced() {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === void 0) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === void 0) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\nfunction baseMerge(origin, target) {\n for (const key in target) {\n if (target[key] === void 0) {\n continue;\n }\n if (!isObject$1(target[key]) || // `target[key]` is not an object\n !isObject$1(origin[key]) || // `target[key]` is not an object\n !(key in origin)) {\n origin[key] = target[key];\n continue;\n }\n if (isPlainObject(target[key]) || isArray(target[key])) {\n baseMerge(origin[key], target[key]);\n }\n }\n}\nfunction merge(origin) {\n const result = Object.assign({}, origin);\n for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n others[_key - 1] = arguments[_key];\n }\n if (!others.length) return result;\n for (const item of others) {\n baseMerge(result, item);\n }\n return result;\n}\nfunction throttle(func, wait, options) {\n let leading = true;\n let trailing = true;\n if (typeof func !== \"function\") {\n throw new TypeError(\"Expected a function\");\n }\n if (isObject$1(options)) {\n leading = \"leading\" in options ? !!options.leading : leading;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n leading,\n trailing,\n maxWait: wait\n });\n}\nvar useDebouncePlugin = definePlugin((queryInstance, _ref) => {\n let {\n debounceInterval,\n debounceOptions,\n manual\n } = _ref;\n const initialAutoRunFlag = ref(false);\n const debouncedRun = ref();\n const debounceOptionsRef = computed(() => debounceOptions);\n const debounceIntervalRef = computed(() => refToRaw(debounceInterval));\n const originRunRef = ref(queryInstance.context.runAsync);\n if (!manual) {\n initialAutoRunFlag.value = true;\n }\n watchEffect((onInvalidate) => {\n if (isNil(debounceIntervalRef.value)) return;\n debouncedRun.value = debounce((callback) => callback(), debounceIntervalRef.value, debounceOptionsRef.value);\n queryInstance.context.runAsync = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new Promise((resolve, reject) => {\n if (initialAutoRunFlag.value) {\n initialAutoRunFlag.value = false;\n originRunRef.value(...args).then(resolve).catch(reject);\n } else {\n debouncedRun.value(() => {\n originRunRef.value(...args).then(resolve).catch(reject);\n });\n }\n });\n };\n onInvalidate(() => {\n var _debouncedRun$value;\n (_debouncedRun$value = debouncedRun.value) === null || _debouncedRun$value === void 0 ? void 0 : _debouncedRun$value.cancel();\n queryInstance.context.runAsync = originRunRef.value;\n });\n });\n return {\n onCancel() {\n var _debouncedRun$value2;\n (_debouncedRun$value2 = debouncedRun.value) === null || _debouncedRun$value2 === void 0 ? void 0 : _debouncedRun$value2.cancel();\n }\n };\n});\nvar useErrorRetryPlugin = definePlugin((queryInstance, _ref) => {\n let {\n errorRetryCount = 0,\n errorRetryInterval = 0\n } = _ref;\n const retryTimer = ref();\n const retriedCount = ref(0);\n const errorRetryCountRef = computed(() => refToRaw(errorRetryCount));\n const errorRetryIntervalRef = computed(() => refToRaw(errorRetryInterval));\n let isRetrying = false;\n const resetRetriedCount = () => {\n retriedCount.value = 0;\n };\n const actualErrorRetryInterval = computed(() => {\n if (errorRetryIntervalRef.value) return errorRetryIntervalRef.value;\n const baseTime = 1e3;\n const minCoefficient = 1;\n const maxCoefficient = 9;\n const coefficient = Math.floor(Math.random() * 2 ** Math.min(retriedCount.value, maxCoefficient) + minCoefficient);\n return baseTime * coefficient;\n });\n const errorRetryHooks = () => {\n let timerId;\n const isInfiniteRetry = errorRetryCountRef.value === -1;\n const hasRetryCount = retriedCount.value < errorRetryCountRef.value;\n if (isInfiniteRetry || hasRetryCount) {\n if (!isInfiniteRetry) retriedCount.value += 1;\n timerId = setTimeout(() => {\n isRetrying = true;\n queryInstance.context.refresh();\n }, actualErrorRetryInterval.value);\n }\n return () => timerId && clearTimeout(timerId);\n };\n const clearTimer = () => {\n if (retryTimer.value) {\n retryTimer.value();\n }\n };\n return {\n onBefore() {\n if (!isRetrying) {\n resetRetriedCount();\n }\n isRetrying = false;\n clearTimer();\n },\n onSuccess() {\n resetRetriedCount();\n },\n onError() {\n retryTimer.value = errorRetryHooks();\n },\n onCancel() {\n resetRetriedCount();\n clearTimer();\n }\n };\n});\nvar useReadyPlugin = definePlugin((queryInstance, _ref) => {\n let {\n ready = ref(true),\n manual,\n defaultParams = []\n } = _ref;\n watch(ready, (val) => {\n if (!manual && val) {\n queryInstance.context.run(...defaultParams);\n }\n }, {\n flush: \"sync\"\n });\n return {\n onBefore() {\n const readyFlag = isFunction$1(ready) ? ready() : ready.value;\n if (!readyFlag) {\n queryInstance.loading.value = false;\n return {\n isBreak: true\n };\n }\n }\n };\n});\nvar useRefreshDepsPlugin = definePlugin((queryInstance, _ref) => {\n let {\n refreshDeps,\n refreshDepsAction,\n manual\n } = _ref;\n if (refreshDeps === void 0 || isArray(refreshDeps) && refreshDeps.length === 0) return {};\n const deps = isArray(refreshDeps) ? refreshDeps : [refreshDeps];\n watch(deps, () => {\n if (refreshDepsAction) {\n refreshDepsAction();\n } else {\n !manual && queryInstance.context.refresh();\n }\n });\n return {};\n});\nvar useThrottlePlugin = definePlugin((queryInstance, _ref) => {\n let {\n throttleInterval,\n throttleOptions\n } = _ref;\n const throttledRun = ref();\n const throttleIntervalRef = computed(() => refToRaw(throttleInterval));\n const throttleOptionsRef = computed(() => throttleOptions);\n const originRunRef = ref(queryInstance.context.runAsync);\n watchEffect((onInvalidate) => {\n if (isNil(throttleInterval)) return {};\n throttledRun.value = throttle((callback) => callback(), throttleIntervalRef.value, throttleOptionsRef.value);\n queryInstance.context.runAsync = function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new Promise((resolve, reject) => {\n throttledRun.value(() => {\n originRunRef.value(...args).then(resolve).catch(reject);\n });\n });\n };\n onInvalidate(() => {\n var _throttledRun$value;\n (_throttledRun$value = throttledRun.value) === null || _throttledRun$value === void 0 ? void 0 : _throttledRun$value.cancel();\n queryInstance.context.runAsync = originRunRef.value;\n });\n });\n return {\n onCancel() {\n var _throttledRun$value2;\n (_throttledRun$value2 = throttledRun.value) === null || _throttledRun$value2 === void 0 ? void 0 : _throttledRun$value2.cancel();\n }\n };\n});\nconst setStateBind = (oldState, publicCb) => {\n return (newState) => {\n Object.keys(newState).forEach((key) => {\n oldState[key].value = newState[key];\n });\n publicCb.forEach((fun) => fun(oldState));\n };\n};\nconst composeMiddleware = (middleArray, hook) => {\n return () => {\n let next = hook;\n for (let i = middleArray.length; i-- > 0; ) {\n next = middleArray[i](next);\n }\n return next();\n };\n};\nconst createQuery = (service, config, initialState) => {\n var _initialState$loading, _initialState$data;\n const {\n initialData,\n onSuccess,\n onError,\n onBefore,\n onAfter\n } = config;\n const loading = ref((_initialState$loading = void 0) !== null && _initialState$loading !== void 0 ? _initialState$loading : false);\n const data = shallowRef((_initialState$data = void 0) !== null && _initialState$data !== void 0 ? _initialState$data : initialData);\n const error = shallowRef(void 0);\n const params = ref(void 0);\n const plugins = ref([]);\n const status = shallowRef(\"pending\");\n const context = {};\n const setState = setStateBind({\n status,\n loading,\n data,\n error,\n params\n }, []);\n const emit = function(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (event === \"onQuery\") {\n const queryFn = plugins.value.map((i) => i.onQuery).filter(Boolean);\n return {\n servicePromise: composeMiddleware(queryFn, args[0])()\n };\n } else {\n const res = plugins.value.map((i) => {\n var _i$event;\n return (_i$event = i[event]) === null || _i$event === void 0 ? void 0 : _i$event.call(i, ...args);\n });\n return Object.assign({}, ...res);\n }\n };\n const count = ref(0);\n context.runAsync = async function() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n setState({\n loading: true,\n params: args,\n status: \"pending\"\n });\n count.value += 1;\n const currentCount = count.value;\n const {\n isBreak,\n breakResult = resolvedPromise()\n } = emit(\"onBefore\", args);\n if (isBreak) {\n setState({\n status: \"settled\"\n });\n return breakResult;\n }\n onBefore === null || onBefore === void 0 ? void 0 : onBefore(args);\n try {\n const serviceWrapper = () => new Promise((resolve) => resolve(service(...params.value)));\n let {\n servicePromise\n } = emit(\"onQuery\", serviceWrapper);\n if (!servicePromise) {\n servicePromise = serviceWrapper();\n }\n const res = await servicePromise;\n if (currentCount !== count.value) return resolvedPromise();\n setState({\n data: res,\n loading: false,\n error: void 0,\n status: \"settled\"\n });\n emit(\"onSuccess\", res, args);\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(res, args);\n if (currentCount === count.value) {\n emit(\"onAfter\", args, res, void 0);\n }\n onAfter === null || onAfter === void 0 ? void 0 : onAfter(args);\n return res;\n } catch (error2) {\n if (currentCount !== count.value) return resolvedPromise();\n setState({\n loading: false,\n error: error2,\n status: \"settled\"\n });\n emit(\"onError\", error2, args);\n onError === null || onError === void 0 ? void 0 : onError(error2, args);\n if (currentCount === count.value) {\n emit(\"onAfter\", args, void 0, error2);\n }\n onAfter === null || onAfter === void 0 ? void 0 : onAfter(args);\n throw error2;\n }\n };\n context.run = function() {\n context.runAsync(...arguments).catch((error2) => {\n if (!onError) {\n console.error(error2);\n }\n });\n };\n context.cancel = () => {\n count.value += 1;\n setState({\n loading: false\n });\n emit(\"onCancel\");\n };\n context.refresh = () => {\n context.run(...params.value || []);\n };\n context.refreshAsync = () => {\n return context.runAsync(...params.value || []);\n };\n context.mutate = (x) => {\n const mutateData = isFunction$1(x) ? x(data.value) : x;\n const _mutateData = shallowCopy(mutateData);\n setState({\n data: _mutateData\n });\n emit(\"onMutate\", _mutateData);\n };\n return {\n status,\n loading,\n data,\n error,\n params,\n plugins,\n context\n };\n};\nfunction useQuery(service) {\n let options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n let plugins = arguments.length > 2 ? arguments[2] : void 0;\n const injectedGlobalOptions = inject(GLOBAL_OPTIONS_PROVIDE_KEY, {});\n const config = {\n ...getGlobalOptions(),\n ...injectedGlobalOptions,\n ...options\n };\n const {\n manual = false,\n defaultParams = []\n } = config;\n const queryInstance = createQuery(service, config);\n queryInstance.plugins.value = plugins.map((i) => i(queryInstance, config));\n if (!manual) {\n const params = queryInstance.params.value || defaultParams;\n queryInstance.context.run(...params);\n }\n onUnmounted(() => {\n queryInstance.context.cancel();\n });\n return {\n loading: queryInstance.loading,\n data: queryInstance.data,\n error: queryInstance.error,\n params: queryInstance.params,\n cancel: queryInstance.context.cancel,\n refresh: queryInstance.context.refresh,\n refreshAsync: queryInstance.context.refreshAsync,\n mutate: queryInstance.context.mutate,\n run: queryInstance.context.run,\n runAsync: queryInstance.context.runAsync\n };\n}\nfunction useLoadMore(service, options) {\n const {\n isNoMore,\n ...restOptions\n } = options !== null && options !== void 0 ? options : {};\n const data = shallowRef();\n const dataList = computed(() => {\n var _data$value;\n return ((_data$value = data.value) === null || _data$value === void 0 ? void 0 : _data$value.list) || [];\n });\n const loadingMore = ref(false);\n const isTriggerByLoadMore = ref(false);\n const count = ref(0);\n const {\n runAsync,\n run,\n cancel: _cancel,\n ...rest\n } = useQuery(async (lastData) => {\n const currentCount = count.value;\n const currentData = await service(lastData);\n if (currentCount === count.value) {\n if (lastData) {\n data.value = {\n ...currentData,\n list: [...lastData.list, ...currentData.list]\n };\n } else {\n data.value = currentData;\n }\n }\n return currentData;\n }, {\n ...restOptions,\n defaultParams: [],\n refreshDepsAction: () => {\n if (restOptions !== null && restOptions !== void 0 && restOptions.refreshDepsAction) {\n restOptions.refreshDepsAction();\n } else {\n refresh();\n }\n },\n onError: (error) => {\n var _restOptions$onError;\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onError = restOptions.onError) === null || _restOptions$onError === void 0 ? void 0 : _restOptions$onError.call(restOptions, error);\n },\n onSuccess: (data2) => {\n var _restOptions$onSucces;\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onSucces = restOptions.onSuccess) === null || _restOptions$onSucces === void 0 ? void 0 : _restOptions$onSucces.call(restOptions, data2);\n },\n onBefore: () => {\n var _restOptions$onBefore;\n count.value += 1;\n if (isTriggerByLoadMore.value) {\n isTriggerByLoadMore.value = false;\n loadingMore.value = true;\n }\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onBefore = restOptions.onBefore) === null || _restOptions$onBefore === void 0 ? void 0 : _restOptions$onBefore.call(restOptions);\n },\n onAfter: () => {\n var _restOptions$onAfter;\n loadingMore.value = false;\n isTriggerByLoadMore.value = false;\n restOptions === null || restOptions === void 0 ? void 0 : (_restOptions$onAfter = restOptions.onAfter) === null || _restOptions$onAfter === void 0 ? void 0 : _restOptions$onAfter.call(restOptions);\n }\n }, [useErrorRetryPlugin, useDebouncePlugin, useThrottlePlugin, useRefreshDepsPlugin, useReadyPlugin]);\n const noMore = computed(() => {\n return isNoMore && isFunction$1(isNoMore) ? isNoMore(data.value) : false;\n });\n const loadMore = () => {\n loadMoreAsync().catch(() => {\n });\n };\n const loadMoreAsync = () => {\n if (noMore.value) {\n return Promise.reject(warning(\"No more data. You need to ignore this error by checking if `noMore` is false before calling `loadMoreAsync`\", true));\n }\n isTriggerByLoadMore.value = true;\n return runAsync(data.value);\n };\n const refresh = () => run();\n const refreshAsync = () => runAsync();\n const cancel = () => {\n count.value += 1;\n _cancel();\n loadingMore.value = false;\n };\n const mutate = (x) => {\n const mutateData = isFunction$1(x) ? x(data.value) : x;\n const _mutateData = shallowCopy(mutateData);\n data.value = _mutateData;\n };\n return {\n data,\n dataList,\n loadingMore,\n noMore,\n cancel,\n mutate,\n refresh,\n refreshAsync,\n loadMore,\n loadMoreAsync,\n ...omit(rest, [\"refresh\", \"refreshAsync\", \"mutate\", \"params\", \"data\"])\n };\n}\nconst cacheQuery = /* @__PURE__ */ new Map();\nconst setCacheQuery = (cacheKey, query) => {\n cacheQuery.set(cacheKey, query);\n query.then((res) => {\n cacheQuery.delete(cacheKey);\n return res;\n }).catch(() => {\n cacheQuery.delete(cacheKey);\n });\n};\nconst getCacheQuery = (cacheKey) => {\n return cacheQuery.get(cacheKey);\n};\nconst listeners = /* @__PURE__ */ new Map();\nconst trigger = (key, data) => {\n if (listeners.has(key)) {\n listeners.get(key).forEach((item) => item(data));\n }\n};\nconst subscribe = (key, listener) => {\n if (!listeners.has(key)) {\n listeners.set(key, [listener]);\n } else {\n listeners.get(key).push(listener);\n }\n return () => {\n const index = listeners.get(key).indexOf(listener);\n listeners.get(key).splice(index, 1);\n };\n};\nvar useCachePlugin = definePlugin((queryInstance, _ref) => {\n let {\n cacheKey: customCacheKey,\n cacheTime = 6e5,\n staleTime = 0,\n getCache: customGetCache,\n setCache: customSetCache\n } = _ref;\n if (!customCacheKey) return {};\n const cacheKey = isFunction$1(customCacheKey) ? customCacheKey : () => customCacheKey;\n const unSubscribe = ref(() => {\n });\n let currentQuery;\n const _getCache = (key) => {\n if (customGetCache) {\n return customGetCache(key);\n } else {\n return getCache(key);\n }\n };\n const _setCache = (key, time, cacheData) => {\n if (customSetCache) {\n customSetCache(key, cacheData);\n } else {\n setCache(key, time, cacheData);\n }\n trigger(key, cacheData.data);\n };\n const isFresh = (time) => staleTime === -1 || time + staleTime > (/* @__PURE__ */ new Date()).getTime();\n const hasProp = (object, prop) => Object.prototype.hasOwnProperty.call(object, prop);\n const subscribeCache = (params) => {\n const _cacheKey2 = cacheKey(params);\n return subscribe(_cacheKey2, (data) => {\n queryInstance.data.value = data;\n });\n };\n const _cacheKey = cacheKey();\n const cache = _getCache(_cacheKey);\n if (cache && hasProp(cache, \"data\")) {\n queryInstance.data.value = cache.data;\n queryInstance.params.value = cache.params;\n }\n if (_cacheKey) {\n unSubscribe.value = subscribeCache();\n }\n onUnmounted(() => {\n unSubscribe.value();\n });\n return {\n onBefore(params) {\n const _cacheKey2 = cacheKey(params);\n const cache2 = _getCache(_cacheKey2);\n if (!cache2 || !hasProp(cache2, \"data\")) {\n return {};\n }\n if (isFresh(cache2.time)) {\n queryInstance.data.value = cache2.data;\n queryInstance.loading.value = false;\n return {\n isBreak: true,\n breakResult: cache2.data\n };\n } else {\n queryInstance.data.value = cache2.data;\n }\n },\n onQuery(service) {\n const params = queryInstance.params.value;\n const _cacheKey2 = cacheKey(params);\n let servicePromise = getCacheQuery(_cacheKey2);\n if (servicePromise && servicePromise !== currentQuery) {\n return () => servicePromise;\n }\n servicePromise = service();\n currentQuery = servicePromise;\n setCacheQuery(_cacheKey2, servicePromise);\n return () => servicePromise;\n },\n onSuccess(data, params) {\n const _cacheKey2 = cacheKey(params);\n if (_cacheKey2) {\n unSubscribe.value();\n _setCache(_cacheKey2, cacheTime, {\n data,\n params,\n time: (/* @__PURE__ */ new Date()).getTime()\n });\n unSubscribe.value = subscribeCache(params);\n }\n },\n onMutate(data) {\n const _cacheKey2 = cacheKey(queryInstance.params.value);\n if (_cacheKey2) {\n unSubscribe.value();\n _setCache(_cacheKey2, cacheTime, {\n data,\n params: queryInstance.params.value,\n time: (/* @__PURE__ */ new Date()).getTime()\n });\n unSubscribe.value = subscribeCache(queryInstance.params.value);\n }\n }\n };\n});\nfunction setTimeoutPromise(duration) {\n let timerId, stop;\n class Timer extends Promise {\n constructor(fn) {\n super(fn);\n this.cancel = () => {\n stop();\n clearTimeout(timerId);\n };\n }\n }\n return new Timer((resolve) => {\n stop = resolve;\n timerId = setTimeout(stop, duration);\n });\n}\nfunction getCurrentTime() {\n return (/* @__PURE__ */ new Date()).getTime();\n}\nvar useLoadingDelayPlugin = definePlugin((queryInstance, _ref) => {\n let {\n loadingDelay = 0,\n loadingKeep = 0\n } = _ref;\n const delayLoadingTimer = ref(() => {\n });\n const loadingDelayRef = computed(() => refToRaw(loadingDelay));\n const loadingKeepRef = computed(() => refToRaw(loadingKeep));\n let startTime = 0;\n let timeoutPromise = {};\n const delayLoading = () => {\n let timerId;\n if (loadingDelayRef.value) {\n timerId = setTimeout(() => {\n if (queryInstance.status.value === \"pending\") {\n queryInstance.loading.value = true;\n }\n }, loadingDelayRef.value);\n }\n return () => timerId && clearTimeout(timerId);\n };\n return {\n onBefore() {\n queryInstance.loading.value = !loadingDelayRef.value;\n delayLoadingTimer.value();\n delayLoadingTimer.value = delayLoading();\n startTime = getCurrentTime();\n },\n onQuery(service) {\n if (!loadingKeepRef.value) return () => service();\n timeoutPromise = setTimeoutPromise(loadingKeepRef.value + loadingDelayRef.value);\n const _service = async () => {\n try {\n const res = await service();\n if (getCurrentTime() - startTime <= loadingDelayRef.value) {\n timeoutPromise.cancel();\n }\n return Promise.resolve(res);\n } catch (error) {\n if (getCurrentTime() - startTime <= loadingDelayRef.value) {\n timeoutPromise.cancel();\n }\n return Promise.reject(error);\n }\n };\n const servicePromise = Promise.allSettled([_service(), timeoutPromise]).then((res) => {\n const result = res[0];\n if (result.status === \"fulfilled\") {\n return result.value;\n } else {\n return Promise.reject(result.reason);\n }\n });\n return () => servicePromise;\n },\n onCancel() {\n delayLoadingTimer.value();\n },\n onAfter() {\n delayLoadingTimer.value();\n }\n };\n});\nvar _window;\nconst FOCUS_LISTENER = /* @__PURE__ */ new Set();\nconst VISIBLE_LISTENER = /* @__PURE__ */ new Set();\nconst RECONNECT_LISTENER = /* @__PURE__ */ new Set();\nconst subscriber = (listenerType, event) => {\n let listeners2;\n switch (listenerType) {\n case \"FOCUS_LISTENER\":\n listeners2 = FOCUS_LISTENER;\n break;\n case \"RECONNECT_LISTENER\":\n listeners2 = RECONNECT_LISTENER;\n break;\n case \"VISIBLE_LISTENER\":\n listeners2 = VISIBLE_LISTENER;\n break;\n }\n if (listeners2.has(event)) return;\n listeners2.add(event);\n return () => {\n listeners2.delete(event);\n };\n};\nconst observer = (listeners2) => {\n listeners2.forEach((event) => {\n event();\n });\n};\nif (!isServer && (_window = window) !== null && _window !== void 0 && _window.addEventListener) {\n window.addEventListener(\"visibilitychange\", () => {\n if (isDocumentVisibility()) {\n observer(VISIBLE_LISTENER);\n }\n }, false);\n window.addEventListener(\"focus\", () => observer(FOCUS_LISTENER), false);\n window.addEventListener(\"online\", () => observer(RECONNECT_LISTENER), false);\n}\nvar usePollingPlugin = definePlugin((queryInstance, _ref) => {\n let {\n pollingInterval,\n pollingWhenHidden = false,\n pollingWhenOffline = false,\n errorRetryCount = 0\n } = _ref;\n const pollingTimer = ref();\n const stopPollingWhenHiddenOrOffline = ref(false);\n const pollingIntervalRef = computed(() => refToRaw(pollingInterval));\n const errorRetryCountRef = computed(() => refToRaw(errorRetryCount));\n const unsubscribeList = [];\n const addUnsubscribeList = (event) => {\n event && unsubscribeList.push(event);\n };\n const isKeepPolling = () => {\n return (\n // pollingWhenHidden = true or pollingWhenHidden = false and document is visibility\n (pollingWhenHidden || isDocumentVisibility()) && // pollingWhenOffline = true or pollingWhenOffline = false and is online\n (pollingWhenOffline || isOnline())\n );\n };\n const polling = (pollingFunc) => {\n if (queryInstance.error.value && errorRetryCountRef.value !== 0) return;\n let timerId;\n if (!isNil(pollingIntervalRef.value) && pollingIntervalRef.value >= 0) {\n if (isKeepPolling()) {\n timerId = setTimeout(pollingFunc, pollingIntervalRef.value);\n } else {\n stopPollingWhenHiddenOrOffline.value = true;\n return;\n }\n }\n return () => timerId && clearTimeout(timerId);\n };\n const rePolling = () => {\n if (stopPollingWhenHiddenOrOffline.value && isKeepPolling()) {\n queryInstance.context.refresh();\n stopPollingWhenHiddenOrOffline.value = false;\n }\n };\n watch(pollingIntervalRef, () => {\n if (pollingTimer.value) {\n pollingTimer.value();\n pollingTimer.value = polling(() => queryInstance.context.refresh());\n }\n });\n if (!pollingWhenHidden) {\n addUnsubscribeList(subscriber(\"VISIBLE_LISTENER\", rePolling));\n }\n if (!pollingWhenOffline) {\n addUnsubscribeList(subscriber(\"RECONNECT_LISTENER\", rePolling));\n }\n onUnmounted(() => {\n unsubscribeList.forEach((unsubscribe) => unsubscribe());\n });\n return {\n onBefore() {\n var _pollingTimer$value;\n (_pollingTimer$value = pollingTimer.value) === null || _pollingTimer$value === void 0 ? void 0 : _pollingTimer$value.call(pollingTimer);\n },\n onCancel() {\n var _pollingTimer$value2;\n (_pollingTimer$value2 = pollingTimer.value) === null || _pollingTimer$value2 === void 0 ? void 0 : _pollingTimer$value2.call(pollingTimer);\n },\n onAfter() {\n pollingTimer.value = polling(() => queryInstance.context.refresh());\n }\n };\n});\nconst limitTrigger = (fn, timeInterval) => {\n let running = false;\n return function() {\n if (running) return;\n running = true;\n fn(...arguments);\n setTimeout(() => {\n running = false;\n }, timeInterval);\n };\n};\nvar useRefreshOnWindowFocus = definePlugin((queryInstance, _ref) => {\n let {\n refreshOnWindowFocus = false,\n refocusTimespan = 5e3\n } = _ref;\n const refreshOnWindowFocusRef = computed(() => refToRaw(refreshOnWindowFocus));\n const refocusTimespanRef = computed(() => refToRaw(refocusTimespan));\n const unsubscribeList = [];\n const addUnsubscribeList = (event) => {\n event && unsubscribeList.push(event);\n };\n const unsubscribe = () => {\n unsubscribeList.forEach((fn) => fn());\n };\n watchEffect(() => {\n unsubscribe();\n if (refreshOnWindowFocusRef.value) {\n const limitRefresh = limitTrigger(queryInstance.context.refresh, refocusTimespanRef.value);\n addUnsubscribeList(subscriber(\"VISIBLE_LISTENER\", limitRefresh));\n addUnsubscribeList(subscriber(\"FOCUS_LISTENER\", limitRefresh));\n }\n });\n onUnmounted(() => {\n unsubscribe();\n });\n return {};\n});\nfunction useRequest(service, options, plugins) {\n return useQuery(service, options, [...[], useLoadingDelayPlugin, useErrorRetryPlugin, useDebouncePlugin, usePollingPlugin, useThrottlePlugin, useRefreshOnWindowFocus, useRefreshDepsPlugin, useReadyPlugin, useCachePlugin]);\n}\nfunction usePagination(service) {\n let options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n const defaultPaginationOptions = {\n currentKey: \"current\",\n pageSizeKey: \"pageSize\",\n totalKey: \"total\",\n totalPageKey: \"totalPage\"\n };\n const injectedGlobalOptions = inject(GLOBAL_OPTIONS_PROVIDE_KEY, {});\n const {\n pagination,\n ...restOptions\n } = options;\n const {\n currentKey,\n pageSizeKey,\n totalKey,\n totalPageKey\n } = merge(defaultPaginationOptions, getGlobalOptions().pagination || {}, injectedGlobalOptions.pagination || {}, pagination || {});\n const finallyOptions = merge({\n defaultParams: [{\n [currentKey]: 1,\n [pageSizeKey]: 10\n }]\n }, restOptions);\n const {\n data,\n params,\n run,\n ...rest\n } = useRequest(service, finallyOptions);\n const paging = (paginationParams) => {\n const [oldPaginationParams, ...restParams] = params.value || [];\n const newPaginationParams = {\n ...oldPaginationParams,\n ...paginationParams\n };\n const mergerParams = [newPaginationParams, ...restParams];\n run(...mergerParams);\n };\n const changeCurrent = (current2) => {\n paging({\n [currentKey]: current2\n });\n };\n const changePageSize = (pageSize2) => {\n paging({\n [pageSizeKey]: pageSize2\n });\n };\n const changePagination = (current2, pageSize2) => {\n paging({\n [currentKey]: current2,\n [pageSizeKey]: pageSize2\n });\n };\n const total = computed(() => get(data.value, totalKey, 0));\n const current = computed({\n get: () => {\n var _params$value$0$curre, _params$value, _params$value$;\n return (\n // @ts-ignore\n (_params$value$0$curre = (_params$value = params.value) === null || _params$value === void 0 ? void 0 : (_params$value$ = _params$value[0]) === null || _params$value$ === void 0 ? void 0 : _params$value$[currentKey]) !== null && _params$value$0$curre !== void 0 ? _params$value$0$curre : finallyOptions.defaultParams[0][currentKey]\n );\n },\n set: (val) => {\n changeCurrent(val);\n }\n });\n const pageSize = computed({\n get: () => {\n var _params$value$0$pageS, _params$value2, _params$value2$;\n return (\n // @ts-ignore\n (_params$value$0$pageS = (_params$value2 = params.value) === null || _params$value2 === void 0 ? void 0 : (_params$value2$ = _params$value2[0]) === null || _params$value2$ === void 0 ? void 0 : _params$value2$[pageSizeKey]) !== null && _params$value$0$pageS !== void 0 ? _params$value$0$pageS : finallyOptions.defaultParams[0][pageSizeKey]\n );\n },\n set: (val) => {\n changePageSize(val);\n }\n });\n const totalPage = computed(() => get(data.value, totalPageKey, Math.ceil(total.value / pageSize.value)));\n return {\n data,\n params,\n current,\n pageSize,\n total,\n totalPage,\n run,\n changeCurrent,\n changePageSize,\n changePagination,\n ...rest\n };\n}\nconst objToStr = Object.prototype.toString;\nconst toTypeStr = (val) => objToStr.call(val);\nconst isFunction = (val) => typeof val === \"function\";\nconst isObject = (val) => {\n return val !== null && typeof val === \"object\";\n};\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst identifyType = (val) => {\n return toTypeStr(val).replace(\"[object \", \"\").replace(\"]\", \"\").toLowerCase();\n};\nfunction noop() {\n}\nfunction isEmpty(val) {\n if (val == null) return true;\n if (typeof val === \"string\" && val.trim() === \"\") return true;\n if (typeof val === \"boolean\") return false;\n if (typeof val === \"number\") return Number.isNaN(val);\n if (val instanceof Error) return val.message === \"\";\n switch (identifyType(val)) {\n // Array\n case \"array\":\n return !val.length;\n // Plain Object\n case \"object\": {\n return !Object.keys(val).length;\n }\n // Map or Set or File\n case \"file\":\n case \"map\":\n case \"set\": {\n return !val.size;\n }\n default:\n return !val;\n }\n}\nfunction hasOwn(val, key) {\n return Object.prototype.hasOwnProperty.call(val, key);\n}\nfunction createEnum(obj) {\n const map = {};\n const options = Object.entries(obj).map(([key, raw]) => {\n const entry = typeof raw === \"string\" ? { label: raw } : raw;\n const value = \"value\" in entry ? entry.value : key;\n map[key] = { value, ...entry };\n return { value, ...entry };\n });\n return { map, options };\n}\nfunction extractSlotsWithPrefix(slots, prefix) {\n const res = [];\n for (const key in slots) {\n if (!key.startsWith(`${prefix}-`)) continue;\n res.push({ originalName: key, filterName: key.slice(prefix.length + 1) });\n }\n return res;\n}\nfunction extractSlotsWithoutPrefix(slots, prefix) {\n const res = [];\n for (const key in slots) {\n if (key.startsWith(`${prefix}-`)) continue;\n res.push(key);\n }\n return res;\n}\nfunction filterSlots(slots, filterName) {\n const res = [];\n for (const key in slots) {\n if (filterName.includes(key)) continue;\n res.push(key);\n }\n return res;\n}\nfunction easyCopy(data) {\n return JSON.parse(JSON.stringify(data));\n}\nfunction checkSameObject(newData, oldData) {\n return JSON.stringify(newData) === JSON.stringify(oldData);\n}\nfunction valueFillter(val, keys, data) {\n if (!val) return val;\n return val.replace(/(?:\\${([^}]*)})|(?:\\$([^&?\\b]*))/g, ($1, $2, $3) => {\n let result = \"\";\n const rule = new RegExp(keys);\n if (rule.test($2) || rule.test($3)) {\n result = data[$2 || $3] || \"\";\n } else {\n result = $1;\n }\n return `${result}`;\n });\n}\nfunction toMoney(money, precision = 2, multiple) {\n if (isEmpty(money)) return \"\";\n if (multiple) money = Number(money) * multiple;\n if (typeof money !== \"number\") money = parseFloat(money);\n money = toPrecision(money, precision).toLocaleString();\n if (precision > 0) {\n const moneySplit = money.split(\".\");\n let decimal = moneySplit[1] || \"\";\n if (!decimal || decimal.length) {\n while (decimal.length < precision) {\n decimal += \"0\";\n }\n money = `${moneySplit[0]}.${decimal}`;\n }\n }\n return money;\n}\nfunction toMoneyTrimmed(money, precision = 2, multiple) {\n if (isEmpty(money)) return \"\";\n if (multiple) money = Number(money) * multiple;\n if (typeof money !== \"number\") money = parseFloat(money);\n const preciseMoney = toPrecision(money, precision);\n if (Number.isInteger(preciseMoney)) {\n return preciseMoney.toLocaleString();\n }\n const localizedMoney = preciseMoney.toLocaleString(void 0, {\n minimumFractionDigits: 0,\n maximumFractionDigits: precision\n });\n return localizedMoney;\n}\nfunction toMoneyWithK(money, precision = 1) {\n if (isEmpty(money)) return 0;\n if (typeof money !== \"number\") money = parseFloat(money);\n if (money < 1e3) return money;\n return `${toMoney(money / 1e3, precision)}k`;\n}\nfunction toPrecision(num, precision = 0) {\n if (isEmpty(num)) return Number(num);\n const result = Math.round(Number(num) * 10 ** precision) / 10 ** precision;\n return parseFloat(`${result}`);\n}\nfunction padZero(value, length) {\n return String(value).padStart(length, \"0\");\n}\nfunction toArr(target) {\n if (Array.isArray(target)) return target;\n if (isEmpty(target)) return [];\n return [target];\n}\nfunction buildTree(data, options = {}) {\n const { id = \"id\", parentId = \"parentId\", children = \"children\" } = options;\n const childrenListMap = {};\n const nodeIds = {};\n const tree = [];\n for (const d of data) {\n const pid = d[parentId];\n if (!childrenListMap[pid]) {\n childrenListMap[pid] = [];\n }\n nodeIds[d[id]] = d;\n childrenListMap[pid].push(d);\n }\n for (const d of data) {\n const pid = d[parentId];\n if (!nodeIds[pid]) {\n tree.push(d);\n }\n }\n for (const t of tree) {\n adaptToChildrenList(t);\n }\n function adaptToChildrenList(o) {\n const childNodes = childrenListMap[o[id]];\n if (childNodes) {\n o[children] = childNodes;\n for (const c of childNodes) {\n adaptToChildrenList(c);\n }\n }\n }\n return tree;\n}\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n) {\n if (Object.prototype.hasOwnProperty.call(n, \"__esModule\")) return n;\n var f = n.default;\n if (typeof f == \"function\") {\n var a = function a2() {\n var isInstance = false;\n try {\n isInstance = this instanceof a2;\n } catch {\n }\n if (isInstance) {\n return Reflect.construct(f, arguments, this.constructor);\n }\n return f.apply(this, arguments);\n };\n a.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a;\n}\nvar cryptoJs$1 = { exports: {} };\nfunction commonjsRequire(path) {\n throw new Error('Could not dynamically require \"' + path + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');\n}\nvar core$1 = { exports: {} };\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$0 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar core = core$1.exports;\nvar hasRequiredCore;\nfunction requireCore() {\n if (hasRequiredCore) return core$1.exports;\n hasRequiredCore = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory();\n }\n })(core, function() {\n var CryptoJS2 = CryptoJS2 || (function(Math2, undefined$1) {\n var crypto;\n if (typeof window !== \"undefined\" && window.crypto) {\n crypto = window.crypto;\n }\n if (typeof self !== \"undefined\" && self.crypto) {\n crypto = self.crypto;\n }\n if (typeof globalThis !== \"undefined\" && globalThis.crypto) {\n crypto = globalThis.crypto;\n }\n if (!crypto && typeof window !== \"undefined\" && window.msCrypto) {\n crypto = window.msCrypto;\n }\n if (!crypto && typeof commonjsGlobal !== \"undefined\" && commonjsGlobal.crypto) {\n crypto = commonjsGlobal.crypto;\n }\n if (!crypto && typeof commonjsRequire === \"function\") {\n try {\n crypto = require$$0;\n } catch (err) {\n }\n }\n var cryptoSecureRandomInt = function() {\n if (crypto) {\n if (typeof crypto.getRandomValues === \"function\") {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {\n }\n }\n if (typeof crypto.randomBytes === \"function\") {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {\n }\n }\n }\n throw new Error(\"Native crypto module could not be used to get secure random number.\");\n };\n var create = Object.create || /* @__PURE__ */ (function() {\n function F() {\n }\n return function(obj) {\n var subtype;\n F.prototype = obj;\n subtype = new F();\n F.prototype = null;\n return subtype;\n };\n })();\n var C = {};\n var C_lib = C.lib = {};\n var Base = C_lib.Base = /* @__PURE__ */ (function() {\n return {\n /**\n * Creates a new object that inherits from this object.\n *\n * @param {Object} overrides Properties to copy into the new object.\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * field: 'value',\n *\n * method: function () {\n * }\n * });\n */\n extend: function(overrides) {\n var subtype = create(this);\n if (overrides) {\n subtype.mixIn(overrides);\n }\n if (!subtype.hasOwnProperty(\"init\") || this.init === subtype.init) {\n subtype.init = function() {\n subtype.$super.init.apply(this, arguments);\n };\n }\n subtype.init.prototype = subtype;\n subtype.$super = this;\n return subtype;\n },\n /**\n * Extends this object and runs the init method.\n * Arguments to create() will be passed to init().\n *\n * @return {Object} The new object.\n *\n * @static\n *\n * @example\n *\n * var instance = MyType.create();\n */\n create: function() {\n var instance = this.extend();\n instance.init.apply(instance, arguments);\n return instance;\n },\n /**\n * Initializes a newly created object.\n * Override this method to add some logic when your objects are created.\n *\n * @example\n *\n * var MyType = CryptoJS.lib.Base.extend({\n * init: function () {\n * // ...\n * }\n * });\n */\n init: function() {\n },\n /**\n * Copies properties into this object.\n *\n * @param {Object} properties The properties to mix in.\n *\n * @example\n *\n * MyType.mixIn({\n * field: 'value'\n * });\n */\n mixIn: function(properties) {\n for (var propertyName in properties) {\n if (properties.hasOwnProperty(propertyName)) {\n this[propertyName] = properties[propertyName];\n }\n }\n if (properties.hasOwnProperty(\"toString\")) {\n this.toString = properties.toString;\n }\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = instance.clone();\n */\n clone: function() {\n return this.init.prototype.extend(this);\n }\n };\n })();\n var WordArray = C_lib.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of 32-bit words.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.create();\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n */\n init: function(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined$1) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n },\n /**\n * Converts this word array to a string.\n *\n * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n *\n * @return {string} The stringified word array.\n *\n * @example\n *\n * var string = wordArray + '';\n * var string = wordArray.toString();\n * var string = wordArray.toString(CryptoJS.enc.Utf8);\n */\n toString: function(encoder) {\n return (encoder || Hex2).stringify(this);\n },\n /**\n * Concatenates a word array to this word array.\n *\n * @param {WordArray} wordArray The word array to append.\n *\n * @return {WordArray} This word array.\n *\n * @example\n *\n * wordArray1.concat(wordArray2);\n */\n concat: function(wordArray) {\n var thisWords = this.words;\n var thatWords = wordArray.words;\n var thisSigBytes = this.sigBytes;\n var thatSigBytes = wordArray.sigBytes;\n this.clamp();\n if (thisSigBytes % 4) {\n for (var i = 0; i < thatSigBytes; i++) {\n var thatByte = thatWords[i >>> 2] >>> 24 - i % 4 * 8 & 255;\n thisWords[thisSigBytes + i >>> 2] |= thatByte << 24 - (thisSigBytes + i) % 4 * 8;\n }\n } else {\n for (var j = 0; j < thatSigBytes; j += 4) {\n thisWords[thisSigBytes + j >>> 2] = thatWords[j >>> 2];\n }\n }\n this.sigBytes += thatSigBytes;\n return this;\n },\n /**\n * Removes insignificant bits.\n *\n * @example\n *\n * wordArray.clamp();\n */\n clamp: function() {\n var words = this.words;\n var sigBytes = this.sigBytes;\n words[sigBytes >>> 2] &= 4294967295 << 32 - sigBytes % 4 * 8;\n words.length = Math2.ceil(sigBytes / 4);\n },\n /**\n * Creates a copy of this word array.\n *\n * @return {WordArray} The clone.\n *\n * @example\n *\n * var clone = wordArray.clone();\n */\n clone: function() {\n var clone = Base.clone.call(this);\n clone.words = this.words.slice(0);\n return clone;\n },\n /**\n * Creates a word array filled with random bytes.\n *\n * @param {number} nBytes The number of random bytes to generate.\n *\n * @return {WordArray} The random word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.lib.WordArray.random(16);\n */\n random: function(nBytes) {\n var words = [];\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray.init(words, nBytes);\n }\n });\n var C_enc = C.enc = {};\n var Hex2 = C_enc.Hex = {\n /**\n * Converts a word array to a hex string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The hex string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n */\n stringify: function(wordArray) {\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var hexChars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 15).toString(16));\n }\n return hexChars.join(\"\");\n },\n /**\n * Converts a hex string to a word array.\n *\n * @param {string} hexStr The hex string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n */\n parse: function(hexStr) {\n var hexStrLength = hexStr.length;\n var words = [];\n for (var i = 0; i < hexStrLength; i += 2) {\n words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n return new WordArray.init(words, hexStrLength / 2);\n }\n };\n var Latin1 = C_enc.Latin1 = {\n /**\n * Converts a word array to a Latin1 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Latin1 string.\n *\n * @static\n *\n * @example\n *\n * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n */\n stringify: function(wordArray) {\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var latin1Chars = [];\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;\n latin1Chars.push(String.fromCharCode(bite));\n }\n return latin1Chars.join(\"\");\n },\n /**\n * Converts a Latin1 string to a word array.\n *\n * @param {string} latin1Str The Latin1 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n */\n parse: function(latin1Str) {\n var latin1StrLength = latin1Str.length;\n var words = [];\n for (var i = 0; i < latin1StrLength; i++) {\n words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8;\n }\n return new WordArray.init(words, latin1StrLength);\n }\n };\n var Utf8 = C_enc.Utf8 = {\n /**\n * Converts a word array to a UTF-8 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-8 string.\n *\n * @static\n *\n * @example\n *\n * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n */\n stringify: function(wordArray) {\n try {\n return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n } catch (e) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n /**\n * Converts a UTF-8 string to a word array.\n *\n * @param {string} utf8Str The UTF-8 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n */\n parse: function(utf8Str) {\n return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n }\n };\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n /**\n * Resets this block algorithm's data buffer to its initial state.\n *\n * @example\n *\n * bufferedBlockAlgorithm.reset();\n */\n reset: function() {\n this._data = new WordArray.init();\n this._nDataBytes = 0;\n },\n /**\n * Adds new data to this block algorithm's buffer.\n *\n * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n *\n * @example\n *\n * bufferedBlockAlgorithm._append('data');\n * bufferedBlockAlgorithm._append(wordArray);\n */\n _append: function(data) {\n if (typeof data == \"string\") {\n data = Utf8.parse(data);\n }\n this._data.concat(data);\n this._nDataBytes += data.sigBytes;\n },\n /**\n * Processes available data blocks.\n *\n * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n *\n * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n *\n * @return {WordArray} The processed data.\n *\n * @example\n *\n * var processedData = bufferedBlockAlgorithm._process();\n * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n */\n _process: function(doFlush) {\n var processedWords;\n var data = this._data;\n var dataWords = data.words;\n var dataSigBytes = data.sigBytes;\n var blockSize = this.blockSize;\n var blockSizeBytes = blockSize * 4;\n var nBlocksReady = dataSigBytes / blockSizeBytes;\n if (doFlush) {\n nBlocksReady = Math2.ceil(nBlocksReady);\n } else {\n nBlocksReady = Math2.max((nBlocksReady | 0) - this._minBufferSize, 0);\n }\n var nWordsReady = nBlocksReady * blockSize;\n var nBytesReady = Math2.min(nWordsReady * 4, dataSigBytes);\n if (nWordsReady) {\n for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n this._doProcessBlock(dataWords, offset);\n }\n processedWords = dataWords.splice(0, nWordsReady);\n data.sigBytes -= nBytesReady;\n }\n return new WordArray.init(processedWords, nBytesReady);\n },\n /**\n * Creates a copy of this object.\n *\n * @return {Object} The clone.\n *\n * @example\n *\n * var clone = bufferedBlockAlgorithm.clone();\n */\n clone: function() {\n var clone = Base.clone.call(this);\n clone._data = this._data.clone();\n return clone;\n },\n _minBufferSize: 0\n });\n C_lib.Hasher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n */\n cfg: Base.extend(),\n /**\n * Initializes a newly created hasher.\n *\n * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n *\n * @example\n *\n * var hasher = CryptoJS.algo.SHA256.create();\n */\n init: function(cfg) {\n this.cfg = this.cfg.extend(cfg);\n this.reset();\n },\n /**\n * Resets this hasher to its initial state.\n *\n * @example\n *\n * hasher.reset();\n */\n reset: function() {\n BufferedBlockAlgorithm.reset.call(this);\n this._doReset();\n },\n /**\n * Updates this hasher with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {Hasher} This hasher.\n *\n * @example\n *\n * hasher.update('message');\n * hasher.update(wordArray);\n */\n update: function(messageUpdate) {\n this._append(messageUpdate);\n this._process();\n return this;\n },\n /**\n * Finalizes the hash computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The hash.\n *\n * @example\n *\n * var hash = hasher.finalize();\n * var hash = hasher.finalize('message');\n * var hash = hasher.finalize(wordArray);\n */\n finalize: function(messageUpdate) {\n if (messageUpdate) {\n this._append(messageUpdate);\n }\n var hash = this._doFinalize();\n return hash;\n },\n blockSize: 512 / 32,\n /**\n * Creates a shortcut function to a hasher's object interface.\n *\n * @param {Hasher} hasher The hasher to create a helper for.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n */\n _createHelper: function(hasher) {\n return function(message, cfg) {\n return new hasher.init(cfg).finalize(message);\n };\n },\n /**\n * Creates a shortcut function to the HMAC's object interface.\n *\n * @param {Hasher} hasher The hasher to use in this HMAC helper.\n *\n * @return {Function} The shortcut function.\n *\n * @static\n *\n * @example\n *\n * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n */\n _createHmacHelper: function(hasher) {\n return function(message, key) {\n return new C_algo.HMAC.init(hasher, key).finalize(message);\n };\n }\n });\n var C_algo = C.algo = {};\n return C;\n })(Math);\n return CryptoJS2;\n });\n })(core$1);\n return core$1.exports;\n}\nvar x64Core$1 = { exports: {} };\nvar x64Core = x64Core$1.exports;\nvar hasRequiredX64Core;\nfunction requireX64Core() {\n if (hasRequiredX64Core) return x64Core$1.exports;\n hasRequiredX64Core = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(x64Core, function(CryptoJS2) {\n (function(undefined$1) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var X32WordArray = C_lib.WordArray;\n var C_x64 = C.x64 = {};\n C_x64.Word = Base.extend({\n /**\n * Initializes a newly created 64-bit word.\n *\n * @param {number} high The high 32 bits.\n * @param {number} low The low 32 bits.\n *\n * @example\n *\n * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n */\n init: function(high, low) {\n this.high = high;\n this.low = low;\n }\n /**\n * Bitwise NOTs this word.\n *\n * @return {X64Word} A new x64-Word object after negating.\n *\n * @example\n *\n * var negated = x64Word.not();\n */\n // not: function () {\n // var high = ~this.high;\n // var low = ~this.low;\n // return X64Word.create(high, low);\n // },\n /**\n * Bitwise ANDs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to AND with this word.\n *\n * @return {X64Word} A new x64-Word object after ANDing.\n *\n * @example\n *\n * var anded = x64Word.and(anotherX64Word);\n */\n // and: function (word) {\n // var high = this.high & word.high;\n // var low = this.low & word.low;\n // return X64Word.create(high, low);\n // },\n /**\n * Bitwise ORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to OR with this word.\n *\n * @return {X64Word} A new x64-Word object after ORing.\n *\n * @example\n *\n * var ored = x64Word.or(anotherX64Word);\n */\n // or: function (word) {\n // var high = this.high | word.high;\n // var low = this.low | word.low;\n // return X64Word.create(high, low);\n // },\n /**\n * Bitwise XORs this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to XOR with this word.\n *\n * @return {X64Word} A new x64-Word object after XORing.\n *\n * @example\n *\n * var xored = x64Word.xor(anotherX64Word);\n */\n // xor: function (word) {\n // var high = this.high ^ word.high;\n // var low = this.low ^ word.low;\n // return X64Word.create(high, low);\n // },\n /**\n * Shifts this word n bits to the left.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftL(25);\n */\n // shiftL: function (n) {\n // if (n < 32) {\n // var high = (this.high << n) | (this.low >>> (32 - n));\n // var low = this.low << n;\n // } else {\n // var high = this.low << (n - 32);\n // var low = 0;\n // }\n // return X64Word.create(high, low);\n // },\n /**\n * Shifts this word n bits to the right.\n *\n * @param {number} n The number of bits to shift.\n *\n * @return {X64Word} A new x64-Word object after shifting.\n *\n * @example\n *\n * var shifted = x64Word.shiftR(7);\n */\n // shiftR: function (n) {\n // if (n < 32) {\n // var low = (this.low >>> n) | (this.high << (32 - n));\n // var high = this.high >>> n;\n // } else {\n // var low = this.high >>> (n - 32);\n // var high = 0;\n // }\n // return X64Word.create(high, low);\n // },\n /**\n * Rotates this word n bits to the left.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotL(25);\n */\n // rotL: function (n) {\n // return this.shiftL(n).or(this.shiftR(64 - n));\n // },\n /**\n * Rotates this word n bits to the right.\n *\n * @param {number} n The number of bits to rotate.\n *\n * @return {X64Word} A new x64-Word object after rotating.\n *\n * @example\n *\n * var rotated = x64Word.rotR(7);\n */\n // rotR: function (n) {\n // return this.shiftR(n).or(this.shiftL(64 - n));\n // },\n /**\n * Adds this word with the passed word.\n *\n * @param {X64Word} word The x64-Word to add with this word.\n *\n * @return {X64Word} A new x64-Word object after adding.\n *\n * @example\n *\n * var added = x64Word.add(anotherX64Word);\n */\n // add: function (word) {\n // var low = (this.low + word.low) | 0;\n // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n // var high = (this.high + word.high + carry) | 0;\n // return X64Word.create(high, low);\n // }\n });\n C_x64.WordArray = Base.extend({\n /**\n * Initializes a newly created word array.\n *\n * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n *\n * @example\n *\n * var wordArray = CryptoJS.x64.WordArray.create();\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ]);\n *\n * var wordArray = CryptoJS.x64.WordArray.create([\n * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n * ], 10);\n */\n init: function(words, sigBytes) {\n words = this.words = words || [];\n if (sigBytes != undefined$1) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 8;\n }\n },\n /**\n * Converts this 64-bit word array to a 32-bit word array.\n *\n * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n *\n * @example\n *\n * var x32WordArray = x64WordArray.toX32();\n */\n toX32: function() {\n var x64Words = this.words;\n var x64WordsLength = x64Words.length;\n var x32Words = [];\n for (var i = 0; i < x64WordsLength; i++) {\n var x64Word = x64Words[i];\n x32Words.push(x64Word.high);\n x32Words.push(x64Word.low);\n }\n return X32WordArray.create(x32Words, this.sigBytes);\n },\n /**\n * Creates a copy of this word array.\n *\n * @return {X64WordArray} The clone.\n *\n * @example\n *\n * var clone = x64WordArray.clone();\n */\n clone: function() {\n var clone = Base.clone.call(this);\n var words = clone.words = this.words.slice(0);\n var wordsLength = words.length;\n for (var i = 0; i < wordsLength; i++) {\n words[i] = words[i].clone();\n }\n return clone;\n }\n });\n })();\n return CryptoJS2;\n });\n })(x64Core$1);\n return x64Core$1.exports;\n}\nvar libTypedarrays$1 = { exports: {} };\nvar libTypedarrays = libTypedarrays$1.exports;\nvar hasRequiredLibTypedarrays;\nfunction requireLibTypedarrays() {\n if (hasRequiredLibTypedarrays) return libTypedarrays$1.exports;\n hasRequiredLibTypedarrays = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(libTypedarrays, function(CryptoJS2) {\n (function() {\n if (typeof ArrayBuffer != \"function\") {\n return;\n }\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var superInit = WordArray.init;\n var subInit = WordArray.init = function(typedArray) {\n if (typedArray instanceof ArrayBuffer) {\n typedArray = new Uint8Array(typedArray);\n }\n if (typedArray instanceof Int8Array || typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray || typedArray instanceof Int16Array || typedArray instanceof Uint16Array || typedArray instanceof Int32Array || typedArray instanceof Uint32Array || typedArray instanceof Float32Array || typedArray instanceof Float64Array) {\n typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n }\n if (typedArray instanceof Uint8Array) {\n var typedArrayByteLength = typedArray.byteLength;\n var words = [];\n for (var i = 0; i < typedArrayByteLength; i++) {\n words[i >>> 2] |= typedArray[i] << 24 - i % 4 * 8;\n }\n superInit.call(this, words, typedArrayByteLength);\n } else {\n superInit.apply(this, arguments);\n }\n };\n subInit.prototype = WordArray;\n })();\n return CryptoJS2.lib.WordArray;\n });\n })(libTypedarrays$1);\n return libTypedarrays$1.exports;\n}\nvar encUtf16$1 = { exports: {} };\nvar encUtf16 = encUtf16$1.exports;\nvar hasRequiredEncUtf16;\nfunction requireEncUtf16() {\n if (hasRequiredEncUtf16) return encUtf16$1.exports;\n hasRequiredEncUtf16 = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(encUtf16, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n C_enc.Utf16 = C_enc.Utf16BE = {\n /**\n * Converts a word array to a UTF-16 BE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 BE string.\n *\n * @static\n *\n * @example\n *\n * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n */\n stringify: function(wordArray) {\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var utf16Chars = [];\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = words[i >>> 2] >>> 16 - i % 4 * 8 & 65535;\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n return utf16Chars.join(\"\");\n },\n /**\n * Converts a UTF-16 BE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 BE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n */\n parse: function(utf16Str) {\n var utf16StrLength = utf16Str.length;\n var words = [];\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= utf16Str.charCodeAt(i) << 16 - i % 2 * 16;\n }\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n C_enc.Utf16LE = {\n /**\n * Converts a word array to a UTF-16 LE string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The UTF-16 LE string.\n *\n * @static\n *\n * @example\n *\n * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n */\n stringify: function(wordArray) {\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var utf16Chars = [];\n for (var i = 0; i < sigBytes; i += 2) {\n var codePoint = swapEndian(words[i >>> 2] >>> 16 - i % 4 * 8 & 65535);\n utf16Chars.push(String.fromCharCode(codePoint));\n }\n return utf16Chars.join(\"\");\n },\n /**\n * Converts a UTF-16 LE string to a word array.\n *\n * @param {string} utf16Str The UTF-16 LE string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n */\n parse: function(utf16Str) {\n var utf16StrLength = utf16Str.length;\n var words = [];\n for (var i = 0; i < utf16StrLength; i++) {\n words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << 16 - i % 2 * 16);\n }\n return WordArray.create(words, utf16StrLength * 2);\n }\n };\n function swapEndian(word) {\n return word << 8 & 4278255360 | word >>> 8 & 16711935;\n }\n })();\n return CryptoJS2.enc.Utf16;\n });\n })(encUtf16$1);\n return encUtf16$1.exports;\n}\nvar encBase64$1 = { exports: {} };\nvar encBase64 = encBase64$1.exports;\nvar hasRequiredEncBase64;\nfunction requireEncBase64() {\n if (hasRequiredEncBase64) return encBase64$1.exports;\n hasRequiredEncBase64 = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(encBase64, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n C_enc.Base64 = {\n /**\n * Converts a word array to a Base64 string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @return {string} The Base64 string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n */\n stringify: function(wordArray) {\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = this._map;\n wordArray.clamp();\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63));\n }\n }\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n return base64Chars.join(\"\");\n },\n /**\n * Converts a Base64 string to a word array.\n *\n * @param {string} base64Str The Base64 string.\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n */\n parse: function(base64Str) {\n var base64StrLength = base64Str.length;\n var map = this._map;\n var reverseMap = this._reverseMap;\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n }\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n }\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n };\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n return WordArray.create(words, nBytes);\n }\n })();\n return CryptoJS2.enc.Base64;\n });\n })(encBase64$1);\n return encBase64$1.exports;\n}\nvar encBase64url$1 = { exports: {} };\nvar encBase64url = encBase64url$1.exports;\nvar hasRequiredEncBase64url;\nfunction requireEncBase64url() {\n if (hasRequiredEncBase64url) return encBase64url$1.exports;\n hasRequiredEncBase64url = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(encBase64url, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_enc = C.enc;\n C_enc.Base64url = {\n /**\n * Converts a word array to a Base64url string.\n *\n * @param {WordArray} wordArray The word array.\n *\n * @param {boolean} urlSafe Whether to use url safe\n *\n * @return {string} The Base64url string.\n *\n * @static\n *\n * @example\n *\n * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n */\n stringify: function(wordArray, urlSafe) {\n if (urlSafe === void 0) {\n urlSafe = true;\n }\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes;\n var map = urlSafe ? this._safe_map : this._map;\n wordArray.clamp();\n var base64Chars = [];\n for (var i = 0; i < sigBytes; i += 3) {\n var byte1 = words[i >>> 2] >>> 24 - i % 4 * 8 & 255;\n var byte2 = words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;\n var byte3 = words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;\n var triplet = byte1 << 16 | byte2 << 8 | byte3;\n for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {\n base64Chars.push(map.charAt(triplet >>> 6 * (3 - j) & 63));\n }\n }\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n while (base64Chars.length % 4) {\n base64Chars.push(paddingChar);\n }\n }\n return base64Chars.join(\"\");\n },\n /**\n * Converts a Base64url string to a word array.\n *\n * @param {string} base64Str The Base64url string.\n *\n * @param {boolean} urlSafe Whether to use url safe\n *\n * @return {WordArray} The word array.\n *\n * @static\n *\n * @example\n *\n * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n */\n parse: function(base64Str, urlSafe) {\n if (urlSafe === void 0) {\n urlSafe = true;\n }\n var base64StrLength = base64Str.length;\n var map = urlSafe ? this._safe_map : this._map;\n var reverseMap = this._reverseMap;\n if (!reverseMap) {\n reverseMap = this._reverseMap = [];\n for (var j = 0; j < map.length; j++) {\n reverseMap[map.charCodeAt(j)] = j;\n }\n }\n var paddingChar = map.charAt(64);\n if (paddingChar) {\n var paddingIndex = base64Str.indexOf(paddingChar);\n if (paddingIndex !== -1) {\n base64StrLength = paddingIndex;\n }\n }\n return parseLoop(base64Str, base64StrLength, reverseMap);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\n _safe_map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"\n };\n function parseLoop(base64Str, base64StrLength, reverseMap) {\n var words = [];\n var nBytes = 0;\n for (var i = 0; i < base64StrLength; i++) {\n if (i % 4) {\n var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << i % 4 * 2;\n var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> 6 - i % 4 * 2;\n var bitsCombined = bits1 | bits2;\n words[nBytes >>> 2] |= bitsCombined << 24 - nBytes % 4 * 8;\n nBytes++;\n }\n }\n return WordArray.create(words, nBytes);\n }\n })();\n return CryptoJS2.enc.Base64url;\n });\n })(encBase64url$1);\n return encBase64url$1.exports;\n}\nvar md5$1 = { exports: {} };\nvar md5 = md5$1.exports;\nvar hasRequiredMd5;\nfunction requireMd5() {\n if (hasRequiredMd5) return md5$1.exports;\n hasRequiredMd5 = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(md5, function(CryptoJS2) {\n (function(Math2) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n var T = [];\n (function() {\n for (var i = 0; i < 64; i++) {\n T[i] = Math2.abs(Math2.sin(i + 1)) * 4294967296 | 0;\n }\n })();\n var MD52 = C_algo.MD5 = Hasher.extend({\n _doReset: function() {\n this._hash = new WordArray.init([\n 1732584193,\n 4023233417,\n 2562383102,\n 271733878\n ]);\n },\n _doProcessBlock: function(M, offset) {\n for (var i = 0; i < 16; i++) {\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360;\n }\n var H = this._hash.words;\n var M_offset_0 = M[offset + 0];\n var M_offset_1 = M[offset + 1];\n var M_offset_2 = M[offset + 2];\n var M_offset_3 = M[offset + 3];\n var M_offset_4 = M[offset + 4];\n var M_offset_5 = M[offset + 5];\n var M_offset_6 = M[offset + 6];\n var M_offset_7 = M[offset + 7];\n var M_offset_8 = M[offset + 8];\n var M_offset_9 = M[offset + 9];\n var M_offset_10 = M[offset + 10];\n var M_offset_11 = M[offset + 11];\n var M_offset_12 = M[offset + 12];\n var M_offset_13 = M[offset + 13];\n var M_offset_14 = M[offset + 14];\n var M_offset_15 = M[offset + 15];\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n a = II(a, b, c, d, M_offset_0, 6, T[48]);\n d = II(d, a, b, c, M_offset_7, 10, T[49]);\n c = II(c, d, a, b, M_offset_14, 15, T[50]);\n b = II(b, c, d, a, M_offset_5, 21, T[51]);\n a = II(a, b, c, d, M_offset_12, 6, T[52]);\n d = II(d, a, b, c, M_offset_3, 10, T[53]);\n c = II(c, d, a, b, M_offset_10, 15, T[54]);\n b = II(b, c, d, a, M_offset_1, 21, T[55]);\n a = II(a, b, c, d, M_offset_8, 6, T[56]);\n d = II(d, a, b, c, M_offset_15, 10, T[57]);\n c = II(c, d, a, b, M_offset_6, 15, T[58]);\n b = II(b, c, d, a, M_offset_13, 21, T[59]);\n a = II(a, b, c, d, M_offset_4, 6, T[60]);\n d = II(d, a, b, c, M_offset_11, 10, T[61]);\n c = II(c, d, a, b, M_offset_2, 15, T[62]);\n b = II(b, c, d, a, M_offset_9, 21, T[63]);\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n },\n _doFinalize: function() {\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;\n var nBitsTotalH = Math2.floor(nBitsTotal / 4294967296);\n var nBitsTotalL = nBitsTotal;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = (nBitsTotalH << 8 | nBitsTotalH >>> 24) & 16711935 | (nBitsTotalH << 24 | nBitsTotalH >>> 8) & 4278255360;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotalL << 8 | nBitsTotalL >>> 24) & 16711935 | (nBitsTotalL << 24 | nBitsTotalL >>> 8) & 4278255360;\n data.sigBytes = (dataWords.length + 1) * 4;\n this._process();\n var hash = this._hash;\n var H = hash.words;\n for (var i = 0; i < 4; i++) {\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360;\n }\n return hash;\n },\n clone: function() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n function FF(a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function GG(a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function HH(a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n function II(a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + x + t;\n return (n << s | n >>> 32 - s) + b;\n }\n C.MD5 = Hasher._createHelper(MD52);\n C.HmacMD5 = Hasher._createHmacHelper(MD52);\n })(Math);\n return CryptoJS2.MD5;\n });\n })(md5$1);\n return md5$1.exports;\n}\nvar sha1$1 = { exports: {} };\nvar sha1 = sha1$1.exports;\nvar hasRequiredSha1;\nfunction requireSha1() {\n if (hasRequiredSha1) return sha1$1.exports;\n hasRequiredSha1 = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(sha1, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n var W = [];\n var SHA1 = C_algo.SHA1 = Hasher.extend({\n _doReset: function() {\n this._hash = new WordArray.init([\n 1732584193,\n 4023233417,\n 2562383102,\n 271733878,\n 3285377520\n ]);\n },\n _doProcessBlock: function(M, offset) {\n var H = this._hash.words;\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n for (var i = 0; i < 80; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n W[i] = n << 1 | n >>> 31;\n }\n var t = (a << 5 | a >>> 27) + e + W[i];\n if (i < 20) {\n t += (b & c | ~b & d) + 1518500249;\n } else if (i < 40) {\n t += (b ^ c ^ d) + 1859775393;\n } else if (i < 60) {\n t += (b & c | b & d | c & d) - 1894007588;\n } else {\n t += (b ^ c ^ d) - 899497514;\n }\n e = d;\n d = c;\n c = b << 30 | b >>> 2;\n b = a;\n a = t;\n }\n H[0] = H[0] + a | 0;\n H[1] = H[1] + b | 0;\n H[2] = H[2] + c | 0;\n H[3] = H[3] + d | 0;\n H[4] = H[4] + e | 0;\n },\n _doFinalize: function() {\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(nBitsTotal / 4294967296);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n this._process();\n return this._hash;\n },\n clone: function() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n C.SHA1 = Hasher._createHelper(SHA1);\n C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n })();\n return CryptoJS2.SHA1;\n });\n })(sha1$1);\n return sha1$1.exports;\n}\nvar sha256$1 = { exports: {} };\nvar sha256 = sha256$1.exports;\nvar hasRequiredSha256;\nfunction requireSha256() {\n if (hasRequiredSha256) return sha256$1.exports;\n hasRequiredSha256 = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(sha256, function(CryptoJS2) {\n (function(Math2) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n var H = [];\n var K = [];\n (function() {\n function isPrime(n2) {\n var sqrtN = Math2.sqrt(n2);\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n2 % factor)) {\n return false;\n }\n }\n return true;\n }\n function getFractionalBits(n2) {\n return (n2 - (n2 | 0)) * 4294967296 | 0;\n }\n var n = 2;\n var nPrime = 0;\n while (nPrime < 64) {\n if (isPrime(n)) {\n if (nPrime < 8) {\n H[nPrime] = getFractionalBits(Math2.pow(n, 1 / 2));\n }\n K[nPrime] = getFractionalBits(Math2.pow(n, 1 / 3));\n nPrime++;\n }\n n++;\n }\n })();\n var W = [];\n var SHA256 = C_algo.SHA256 = Hasher.extend({\n _doReset: function() {\n this._hash = new WordArray.init(H.slice(0));\n },\n _doProcessBlock: function(M, offset) {\n var H2 = this._hash.words;\n var a = H2[0];\n var b = H2[1];\n var c = H2[2];\n var d = H2[3];\n var e = H2[4];\n var f = H2[5];\n var g = H2[6];\n var h = H2[7];\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;\n var gamma1x = W[i - 2];\n var gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n var ch = e & f ^ ~e & g;\n var maj = a & b ^ a & c ^ b & c;\n var sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);\n var sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n H2[0] = H2[0] + a | 0;\n H2[1] = H2[1] + b | 0;\n H2[2] = H2[2] + c | 0;\n H2[3] = H2[3] + d | 0;\n H2[4] = H2[4] + e | 0;\n H2[5] = H2[5] + f | 0;\n H2[6] = H2[6] + g | 0;\n H2[7] = H2[7] + h | 0;\n },\n _doFinalize: function() {\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math2.floor(nBitsTotal / 4294967296);\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n this._process();\n return this._hash;\n },\n clone: function() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n C.SHA256 = Hasher._createHelper(SHA256);\n C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n })(Math);\n return CryptoJS2.SHA256;\n });\n })(sha256$1);\n return sha256$1.exports;\n}\nvar sha224$1 = { exports: {} };\nvar sha224 = sha224$1.exports;\nvar hasRequiredSha224;\nfunction requireSha224() {\n if (hasRequiredSha224) return sha224$1.exports;\n hasRequiredSha224 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireSha256());\n }\n })(sha224, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n var SHA224 = C_algo.SHA224 = SHA256.extend({\n _doReset: function() {\n this._hash = new WordArray.init([\n 3238371032,\n 914150663,\n 812702999,\n 4144912697,\n 4290775857,\n 1750603025,\n 1694076839,\n 3204075428\n ]);\n },\n _doFinalize: function() {\n var hash = SHA256._doFinalize.call(this);\n hash.sigBytes -= 4;\n return hash;\n }\n });\n C.SHA224 = SHA256._createHelper(SHA224);\n C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n })();\n return CryptoJS2.SHA224;\n });\n })(sha224$1);\n return sha224$1.exports;\n}\nvar sha512$1 = { exports: {} };\nvar sha512 = sha512$1.exports;\nvar hasRequiredSha512;\nfunction requireSha512() {\n if (hasRequiredSha512) return sha512$1.exports;\n hasRequiredSha512 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireX64Core());\n }\n })(sha512, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n function X64Word_create() {\n return X64Word.create.apply(X64Word, arguments);\n }\n var K = [\n X64Word_create(1116352408, 3609767458),\n X64Word_create(1899447441, 602891725),\n X64Word_create(3049323471, 3964484399),\n X64Word_create(3921009573, 2173295548),\n X64Word_create(961987163, 4081628472),\n X64Word_create(1508970993, 3053834265),\n X64Word_create(2453635748, 2937671579),\n X64Word_create(2870763221, 3664609560),\n X64Word_create(3624381080, 2734883394),\n X64Word_create(310598401, 1164996542),\n X64Word_create(607225278, 1323610764),\n X64Word_create(1426881987, 3590304994),\n X64Word_create(1925078388, 4068182383),\n X64Word_create(2162078206, 991336113),\n X64Word_create(2614888103, 633803317),\n X64Word_create(3248222580, 3479774868),\n X64Word_create(3835390401, 2666613458),\n X64Word_create(4022224774, 944711139),\n X64Word_create(264347078, 2341262773),\n X64Word_create(604807628, 2007800933),\n X64Word_create(770255983, 1495990901),\n X64Word_create(1249150122, 1856431235),\n X64Word_create(1555081692, 3175218132),\n X64Word_create(1996064986, 2198950837),\n X64Word_create(2554220882, 3999719339),\n X64Word_create(2821834349, 766784016),\n X64Word_create(2952996808, 2566594879),\n X64Word_create(3210313671, 3203337956),\n X64Word_create(3336571891, 1034457026),\n X64Word_create(3584528711, 2466948901),\n X64Word_create(113926993, 3758326383),\n X64Word_create(338241895, 168717936),\n X64Word_create(666307205, 1188179964),\n X64Word_create(773529912, 1546045734),\n X64Word_create(1294757372, 1522805485),\n X64Word_create(1396182291, 2643833823),\n X64Word_create(1695183700, 2343527390),\n X64Word_create(1986661051, 1014477480),\n X64Word_create(2177026350, 1206759142),\n X64Word_create(2456956037, 344077627),\n X64Word_create(2730485921, 1290863460),\n X64Word_create(2820302411, 3158454273),\n X64Word_create(3259730800, 3505952657),\n X64Word_create(3345764771, 106217008),\n X64Word_create(3516065817, 3606008344),\n X64Word_create(3600352804, 1432725776),\n X64Word_create(4094571909, 1467031594),\n X64Word_create(275423344, 851169720),\n X64Word_create(430227734, 3100823752),\n X64Word_create(506948616, 1363258195),\n X64Word_create(659060556, 3750685593),\n X64Word_create(883997877, 3785050280),\n X64Word_create(958139571, 3318307427),\n X64Word_create(1322822218, 3812723403),\n X64Word_create(1537002063, 2003034995),\n X64Word_create(1747873779, 3602036899),\n X64Word_create(1955562222, 1575990012),\n X64Word_create(2024104815, 1125592928),\n X64Word_create(2227730452, 2716904306),\n X64Word_create(2361852424, 442776044),\n X64Word_create(2428436474, 593698344),\n X64Word_create(2756734187, 3733110249),\n X64Word_create(3204031479, 2999351573),\n X64Word_create(3329325298, 3815920427),\n X64Word_create(3391569614, 3928383900),\n X64Word_create(3515267271, 566280711),\n X64Word_create(3940187606, 3454069534),\n X64Word_create(4118630271, 4000239992),\n X64Word_create(116418474, 1914138554),\n X64Word_create(174292421, 2731055270),\n X64Word_create(289380356, 3203993006),\n X64Word_create(460393269, 320620315),\n X64Word_create(685471733, 587496836),\n X64Word_create(852142971, 1086792851),\n X64Word_create(1017036298, 365543100),\n X64Word_create(1126000580, 2618297676),\n X64Word_create(1288033470, 3409855158),\n X64Word_create(1501505948, 4234509866),\n X64Word_create(1607167915, 987167468),\n X64Word_create(1816402316, 1246189591)\n ];\n var W = [];\n (function() {\n for (var i = 0; i < 80; i++) {\n W[i] = X64Word_create();\n }\n })();\n var SHA512 = C_algo.SHA512 = Hasher.extend({\n _doReset: function() {\n this._hash = new X64WordArray.init([\n new X64Word.init(1779033703, 4089235720),\n new X64Word.init(3144134277, 2227873595),\n new X64Word.init(1013904242, 4271175723),\n new X64Word.init(2773480762, 1595750129),\n new X64Word.init(1359893119, 2917565137),\n new X64Word.init(2600822924, 725511199),\n new X64Word.init(528734635, 4215389547),\n new X64Word.init(1541459225, 327033209)\n ]);\n },\n _doProcessBlock: function(M, offset) {\n var H = this._hash.words;\n var H0 = H[0];\n var H1 = H[1];\n var H2 = H[2];\n var H3 = H[3];\n var H4 = H[4];\n var H5 = H[5];\n var H6 = H[6];\n var H7 = H[7];\n var H0h = H0.high;\n var H0l = H0.low;\n var H1h = H1.high;\n var H1l = H1.low;\n var H2h = H2.high;\n var H2l = H2.low;\n var H3h = H3.high;\n var H3l = H3.low;\n var H4h = H4.high;\n var H4l = H4.low;\n var H5h = H5.high;\n var H5l = H5.low;\n var H6h = H6.high;\n var H6l = H6.low;\n var H7h = H7.high;\n var H7l = H7.low;\n var ah = H0h;\n var al = H0l;\n var bh = H1h;\n var bl = H1l;\n var ch = H2h;\n var cl = H2l;\n var dh = H3h;\n var dl = H3l;\n var eh = H4h;\n var el = H4l;\n var fh = H5h;\n var fl = H5l;\n var gh = H6h;\n var gl = H6l;\n var hh = H7h;\n var hl = H7l;\n for (var i = 0; i < 80; i++) {\n var Wil;\n var Wih;\n var Wi = W[i];\n if (i < 16) {\n Wih = Wi.high = M[offset + i * 2] | 0;\n Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n } else {\n var gamma0x = W[i - 15];\n var gamma0xh = gamma0x.high;\n var gamma0xl = gamma0x.low;\n var gamma0h = (gamma0xh >>> 1 | gamma0xl << 31) ^ (gamma0xh >>> 8 | gamma0xl << 24) ^ gamma0xh >>> 7;\n var gamma0l = (gamma0xl >>> 1 | gamma0xh << 31) ^ (gamma0xl >>> 8 | gamma0xh << 24) ^ (gamma0xl >>> 7 | gamma0xh << 25);\n var gamma1x = W[i - 2];\n var gamma1xh = gamma1x.high;\n var gamma1xl = gamma1x.low;\n var gamma1h = (gamma1xh >>> 19 | gamma1xl << 13) ^ (gamma1xh << 3 | gamma1xl >>> 29) ^ gamma1xh >>> 6;\n var gamma1l = (gamma1xl >>> 19 | gamma1xh << 13) ^ (gamma1xl << 3 | gamma1xh >>> 29) ^ (gamma1xl >>> 6 | gamma1xh << 26);\n var Wi7 = W[i - 7];\n var Wi7h = Wi7.high;\n var Wi7l = Wi7.low;\n var Wi16 = W[i - 16];\n var Wi16h = Wi16.high;\n var Wi16l = Wi16.low;\n Wil = gamma0l + Wi7l;\n Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);\n Wil = Wil + gamma1l;\n Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);\n Wil = Wil + Wi16l;\n Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);\n Wi.high = Wih;\n Wi.low = Wil;\n }\n var chh = eh & fh ^ ~eh & gh;\n var chl = el & fl ^ ~el & gl;\n var majh = ah & bh ^ ah & ch ^ bh & ch;\n var majl = al & bl ^ al & cl ^ bl & cl;\n var sigma0h = (ah >>> 28 | al << 4) ^ (ah << 30 | al >>> 2) ^ (ah << 25 | al >>> 7);\n var sigma0l = (al >>> 28 | ah << 4) ^ (al << 30 | ah >>> 2) ^ (al << 25 | ah >>> 7);\n var sigma1h = (eh >>> 14 | el << 18) ^ (eh >>> 18 | el << 14) ^ (eh << 23 | el >>> 9);\n var sigma1l = (el >>> 14 | eh << 18) ^ (el >>> 18 | eh << 14) ^ (el << 23 | eh >>> 9);\n var Ki = K[i];\n var Kih = Ki.high;\n var Kil = Ki.low;\n var t1l = hl + sigma1l;\n var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);\n var t1l = t1l + chl;\n var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);\n var t1l = t1l + Kil;\n var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);\n var t1l = t1l + Wil;\n var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0);\n var t2l = sigma0l + majl;\n var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0);\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n el = dl + t1l | 0;\n eh = dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0) | 0;\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n al = t1l + t2l | 0;\n ah = t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0) | 0;\n }\n H0l = H0.low = H0l + al;\n H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);\n H1l = H1.low = H1l + bl;\n H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);\n H2l = H2.low = H2l + cl;\n H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);\n H3l = H3.low = H3l + dl;\n H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);\n H4l = H4.low = H4l + el;\n H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);\n H5l = H5.low = H5l + fl;\n H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0);\n H6l = H6.low = H6l + gl;\n H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);\n H7l = H7.low = H7l + hl;\n H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);\n },\n _doFinalize: function() {\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 30] = Math.floor(nBitsTotal / 4294967296);\n dataWords[(nBitsLeft + 128 >>> 10 << 5) + 31] = nBitsTotal;\n data.sigBytes = dataWords.length * 4;\n this._process();\n var hash = this._hash.toX32();\n return hash;\n },\n clone: function() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n },\n blockSize: 1024 / 32\n });\n C.SHA512 = Hasher._createHelper(SHA512);\n C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n })();\n return CryptoJS2.SHA512;\n });\n })(sha512$1);\n return sha512$1.exports;\n}\nvar sha384$1 = { exports: {} };\nvar sha384 = sha384$1.exports;\nvar hasRequiredSha384;\nfunction requireSha384() {\n if (hasRequiredSha384) return sha384$1.exports;\n hasRequiredSha384 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireX64Core(), requireSha512());\n }\n })(sha384, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var X64WordArray = C_x64.WordArray;\n var C_algo = C.algo;\n var SHA512 = C_algo.SHA512;\n var SHA384 = C_algo.SHA384 = SHA512.extend({\n _doReset: function() {\n this._hash = new X64WordArray.init([\n new X64Word.init(3418070365, 3238371032),\n new X64Word.init(1654270250, 914150663),\n new X64Word.init(2438529370, 812702999),\n new X64Word.init(355462360, 4144912697),\n new X64Word.init(1731405415, 4290775857),\n new X64Word.init(2394180231, 1750603025),\n new X64Word.init(3675008525, 1694076839),\n new X64Word.init(1203062813, 3204075428)\n ]);\n },\n _doFinalize: function() {\n var hash = SHA512._doFinalize.call(this);\n hash.sigBytes -= 16;\n return hash;\n }\n });\n C.SHA384 = SHA512._createHelper(SHA384);\n C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n })();\n return CryptoJS2.SHA384;\n });\n })(sha384$1);\n return sha384$1.exports;\n}\nvar sha3$1 = { exports: {} };\nvar sha3 = sha3$1.exports;\nvar hasRequiredSha3;\nfunction requireSha3() {\n if (hasRequiredSha3) return sha3$1.exports;\n hasRequiredSha3 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireX64Core());\n }\n })(sha3, function(CryptoJS2) {\n (function(Math2) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_x64 = C.x64;\n var X64Word = C_x64.Word;\n var C_algo = C.algo;\n var RHO_OFFSETS = [];\n var PI_INDEXES = [];\n var ROUND_CONSTANTS = [];\n (function() {\n var x = 1, y = 0;\n for (var t = 0; t < 24; t++) {\n RHO_OFFSETS[x + 5 * y] = (t + 1) * (t + 2) / 2 % 64;\n var newX = y % 5;\n var newY = (2 * x + 3 * y) % 5;\n x = newX;\n y = newY;\n }\n for (var x = 0; x < 5; x++) {\n for (var y = 0; y < 5; y++) {\n PI_INDEXES[x + 5 * y] = y + (2 * x + 3 * y) % 5 * 5;\n }\n }\n var LFSR = 1;\n for (var i = 0; i < 24; i++) {\n var roundConstantMsw = 0;\n var roundConstantLsw = 0;\n for (var j = 0; j < 7; j++) {\n if (LFSR & 1) {\n var bitPosition = (1 << j) - 1;\n if (bitPosition < 32) {\n roundConstantLsw ^= 1 << bitPosition;\n } else {\n roundConstantMsw ^= 1 << bitPosition - 32;\n }\n }\n if (LFSR & 128) {\n LFSR = LFSR << 1 ^ 113;\n } else {\n LFSR <<= 1;\n }\n }\n ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n }\n })();\n var T = [];\n (function() {\n for (var i = 0; i < 25; i++) {\n T[i] = X64Word.create();\n }\n })();\n var SHA3 = C_algo.SHA3 = Hasher.extend({\n /**\n * Configuration options.\n *\n * @property {number} outputLength\n * The desired number of bits in the output hash.\n * Only values permitted are: 224, 256, 384, 512.\n * Default: 512\n */\n cfg: Hasher.cfg.extend({\n outputLength: 512\n }),\n _doReset: function() {\n var state = this._state = [];\n for (var i = 0; i < 25; i++) {\n state[i] = new X64Word.init();\n }\n this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n },\n _doProcessBlock: function(M, offset) {\n var state = this._state;\n var nBlockSizeLanes = this.blockSize / 2;\n for (var i = 0; i < nBlockSizeLanes; i++) {\n var M2i = M[offset + 2 * i];\n var M2i1 = M[offset + 2 * i + 1];\n M2i = (M2i << 8 | M2i >>> 24) & 16711935 | (M2i << 24 | M2i >>> 8) & 4278255360;\n M2i1 = (M2i1 << 8 | M2i1 >>> 24) & 16711935 | (M2i1 << 24 | M2i1 >>> 8) & 4278255360;\n var lane = state[i];\n lane.high ^= M2i1;\n lane.low ^= M2i;\n }\n for (var round = 0; round < 24; round++) {\n for (var x = 0; x < 5; x++) {\n var tMsw = 0, tLsw = 0;\n for (var y = 0; y < 5; y++) {\n var lane = state[x + 5 * y];\n tMsw ^= lane.high;\n tLsw ^= lane.low;\n }\n var Tx = T[x];\n Tx.high = tMsw;\n Tx.low = tLsw;\n }\n for (var x = 0; x < 5; x++) {\n var Tx4 = T[(x + 4) % 5];\n var Tx1 = T[(x + 1) % 5];\n var Tx1Msw = Tx1.high;\n var Tx1Lsw = Tx1.low;\n var tMsw = Tx4.high ^ (Tx1Msw << 1 | Tx1Lsw >>> 31);\n var tLsw = Tx4.low ^ (Tx1Lsw << 1 | Tx1Msw >>> 31);\n for (var y = 0; y < 5; y++) {\n var lane = state[x + 5 * y];\n lane.high ^= tMsw;\n lane.low ^= tLsw;\n }\n }\n for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n var tMsw;\n var tLsw;\n var lane = state[laneIndex];\n var laneMsw = lane.high;\n var laneLsw = lane.low;\n var rhoOffset = RHO_OFFSETS[laneIndex];\n if (rhoOffset < 32) {\n tMsw = laneMsw << rhoOffset | laneLsw >>> 32 - rhoOffset;\n tLsw = laneLsw << rhoOffset | laneMsw >>> 32 - rhoOffset;\n } else {\n tMsw = laneLsw << rhoOffset - 32 | laneMsw >>> 64 - rhoOffset;\n tLsw = laneMsw << rhoOffset - 32 | laneLsw >>> 64 - rhoOffset;\n }\n var TPiLane = T[PI_INDEXES[laneIndex]];\n TPiLane.high = tMsw;\n TPiLane.low = tLsw;\n }\n var T0 = T[0];\n var state0 = state[0];\n T0.high = state0.high;\n T0.low = state0.low;\n for (var x = 0; x < 5; x++) {\n for (var y = 0; y < 5; y++) {\n var laneIndex = x + 5 * y;\n var lane = state[laneIndex];\n var TLane = T[laneIndex];\n var Tx1Lane = T[(x + 1) % 5 + 5 * y];\n var Tx2Lane = T[(x + 2) % 5 + 5 * y];\n lane.high = TLane.high ^ ~Tx1Lane.high & Tx2Lane.high;\n lane.low = TLane.low ^ ~Tx1Lane.low & Tx2Lane.low;\n }\n }\n var lane = state[0];\n var roundConstant = ROUND_CONSTANTS[round];\n lane.high ^= roundConstant.high;\n lane.low ^= roundConstant.low;\n }\n },\n _doFinalize: function() {\n var data = this._data;\n var dataWords = data.words;\n this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n var blockSizeBits = this.blockSize * 32;\n dataWords[nBitsLeft >>> 5] |= 1 << 24 - nBitsLeft % 32;\n dataWords[(Math2.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits >>> 5) - 1] |= 128;\n data.sigBytes = dataWords.length * 4;\n this._process();\n var state = this._state;\n var outputLengthBytes = this.cfg.outputLength / 8;\n var outputLengthLanes = outputLengthBytes / 8;\n var hashWords = [];\n for (var i = 0; i < outputLengthLanes; i++) {\n var lane = state[i];\n var laneMsw = lane.high;\n var laneLsw = lane.low;\n laneMsw = (laneMsw << 8 | laneMsw >>> 24) & 16711935 | (laneMsw << 24 | laneMsw >>> 8) & 4278255360;\n laneLsw = (laneLsw << 8 | laneLsw >>> 24) & 16711935 | (laneLsw << 24 | laneLsw >>> 8) & 4278255360;\n hashWords.push(laneLsw);\n hashWords.push(laneMsw);\n }\n return new WordArray.init(hashWords, outputLengthBytes);\n },\n clone: function() {\n var clone = Hasher.clone.call(this);\n var state = clone._state = this._state.slice(0);\n for (var i = 0; i < 25; i++) {\n state[i] = state[i].clone();\n }\n return clone;\n }\n });\n C.SHA3 = Hasher._createHelper(SHA3);\n C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n })(Math);\n return CryptoJS2.SHA3;\n });\n })(sha3$1);\n return sha3$1.exports;\n}\nvar ripemd160$1 = { exports: {} };\nvar ripemd160 = ripemd160$1.exports;\nvar hasRequiredRipemd160;\nfunction requireRipemd160() {\n if (hasRequiredRipemd160) return ripemd160$1.exports;\n hasRequiredRipemd160 = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(ripemd160, function(CryptoJS2) {\n /** @preserve\n \t\t\t(c) 2012 by Cédric Mesnil. All rights reserved.\n \n \t\t\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n \n \t\t\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n \t\t\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n \n \t\t\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n \t\t\t*/\n (function(Math2) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var Hasher = C_lib.Hasher;\n var C_algo = C.algo;\n var _zl = WordArray.create([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 7,\n 4,\n 13,\n 1,\n 10,\n 6,\n 15,\n 3,\n 12,\n 0,\n 9,\n 5,\n 2,\n 14,\n 11,\n 8,\n 3,\n 10,\n 14,\n 4,\n 9,\n 15,\n 8,\n 1,\n 2,\n 7,\n 0,\n 6,\n 13,\n 11,\n 5,\n 12,\n 1,\n 9,\n 11,\n 10,\n 0,\n 8,\n 12,\n 4,\n 13,\n 3,\n 7,\n 15,\n 14,\n 5,\n 6,\n 2,\n 4,\n 0,\n 5,\n 9,\n 7,\n 12,\n 2,\n 10,\n 14,\n 1,\n 3,\n 8,\n 11,\n 6,\n 15,\n 13\n ]);\n var _zr = WordArray.create([\n 5,\n 14,\n 7,\n 0,\n 9,\n 2,\n 11,\n 4,\n 13,\n 6,\n 15,\n 8,\n 1,\n 10,\n 3,\n 12,\n 6,\n 11,\n 3,\n 7,\n 0,\n 13,\n 5,\n 10,\n 14,\n 15,\n 8,\n 12,\n 4,\n 9,\n 1,\n 2,\n 15,\n 5,\n 1,\n 3,\n 7,\n 14,\n 6,\n 9,\n 11,\n 8,\n 12,\n 2,\n 10,\n 0,\n 4,\n 13,\n 8,\n 6,\n 4,\n 1,\n 3,\n 11,\n 15,\n 0,\n 5,\n 12,\n 2,\n 13,\n 9,\n 7,\n 10,\n 14,\n 12,\n 15,\n 10,\n 4,\n 1,\n 5,\n 8,\n 7,\n 6,\n 2,\n 13,\n 14,\n 0,\n 3,\n 9,\n 11\n ]);\n var _sl = WordArray.create([\n 11,\n 14,\n 15,\n 12,\n 5,\n 8,\n 7,\n 9,\n 11,\n 13,\n 14,\n 15,\n 6,\n 7,\n 9,\n 8,\n 7,\n 6,\n 8,\n 13,\n 11,\n 9,\n 7,\n 15,\n 7,\n 12,\n 15,\n 9,\n 11,\n 7,\n 13,\n 12,\n 11,\n 13,\n 6,\n 7,\n 14,\n 9,\n 13,\n 15,\n 14,\n 8,\n 13,\n 6,\n 5,\n 12,\n 7,\n 5,\n 11,\n 12,\n 14,\n 15,\n 14,\n 15,\n 9,\n 8,\n 9,\n 14,\n 5,\n 6,\n 8,\n 6,\n 5,\n 12,\n 9,\n 15,\n 5,\n 11,\n 6,\n 8,\n 13,\n 12,\n 5,\n 12,\n 13,\n 14,\n 11,\n 8,\n 5,\n 6\n ]);\n var _sr = WordArray.create([\n 8,\n 9,\n 9,\n 11,\n 13,\n 15,\n 15,\n 5,\n 7,\n 7,\n 8,\n 11,\n 14,\n 14,\n 12,\n 6,\n 9,\n 13,\n 15,\n 7,\n 12,\n 8,\n 9,\n 11,\n 7,\n 7,\n 12,\n 7,\n 6,\n 15,\n 13,\n 11,\n 9,\n 7,\n 15,\n 11,\n 8,\n 6,\n 6,\n 14,\n 12,\n 13,\n 5,\n 14,\n 13,\n 13,\n 7,\n 5,\n 15,\n 5,\n 8,\n 11,\n 14,\n 14,\n 6,\n 14,\n 6,\n 9,\n 12,\n 9,\n 12,\n 5,\n 15,\n 8,\n 8,\n 5,\n 12,\n 9,\n 12,\n 5,\n 14,\n 6,\n 8,\n 13,\n 6,\n 5,\n 15,\n 13,\n 11,\n 11\n ]);\n var _hl = WordArray.create([0, 1518500249, 1859775393, 2400959708, 2840853838]);\n var _hr = WordArray.create([1352829926, 1548603684, 1836072691, 2053994217, 0]);\n var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n _doReset: function() {\n this._hash = WordArray.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\n },\n _doProcessBlock: function(M, offset) {\n for (var i = 0; i < 16; i++) {\n var offset_i = offset + i;\n var M_offset_i = M[offset_i];\n M[offset_i] = (M_offset_i << 8 | M_offset_i >>> 24) & 16711935 | (M_offset_i << 24 | M_offset_i >>> 8) & 4278255360;\n }\n var H = this._hash.words;\n var hl = _hl.words;\n var hr = _hr.words;\n var zl = _zl.words;\n var zr = _zr.words;\n var sl = _sl.words;\n var sr = _sr.words;\n var al, bl, cl, dl, el;\n var ar, br, cr, dr, er;\n ar = al = H[0];\n br = bl = H[1];\n cr = cl = H[2];\n dr = dl = H[3];\n er = el = H[4];\n var t;\n for (var i = 0; i < 80; i += 1) {\n t = al + M[offset + zl[i]] | 0;\n if (i < 16) {\n t += f1(bl, cl, dl) + hl[0];\n } else if (i < 32) {\n t += f2(bl, cl, dl) + hl[1];\n } else if (i < 48) {\n t += f3(bl, cl, dl) + hl[2];\n } else if (i < 64) {\n t += f4(bl, cl, dl) + hl[3];\n } else {\n t += f5(bl, cl, dl) + hl[4];\n }\n t = t | 0;\n t = rotl(t, sl[i]);\n t = t + el | 0;\n al = el;\n el = dl;\n dl = rotl(cl, 10);\n cl = bl;\n bl = t;\n t = ar + M[offset + zr[i]] | 0;\n if (i < 16) {\n t += f5(br, cr, dr) + hr[0];\n } else if (i < 32) {\n t += f4(br, cr, dr) + hr[1];\n } else if (i < 48) {\n t += f3(br, cr, dr) + hr[2];\n } else if (i < 64) {\n t += f2(br, cr, dr) + hr[3];\n } else {\n t += f1(br, cr, dr) + hr[4];\n }\n t = t | 0;\n t = rotl(t, sr[i]);\n t = t + er | 0;\n ar = er;\n er = dr;\n dr = rotl(cr, 10);\n cr = br;\n br = t;\n }\n t = H[1] + cl + dr | 0;\n H[1] = H[2] + dl + er | 0;\n H[2] = H[3] + el + ar | 0;\n H[3] = H[4] + al + br | 0;\n H[4] = H[0] + bl + cr | 0;\n H[0] = t;\n },\n _doFinalize: function() {\n var data = this._data;\n var dataWords = data.words;\n var nBitsTotal = this._nDataBytes * 8;\n var nBitsLeft = data.sigBytes * 8;\n dataWords[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;\n dataWords[(nBitsLeft + 64 >>> 9 << 4) + 14] = (nBitsTotal << 8 | nBitsTotal >>> 24) & 16711935 | (nBitsTotal << 24 | nBitsTotal >>> 8) & 4278255360;\n data.sigBytes = (dataWords.length + 1) * 4;\n this._process();\n var hash = this._hash;\n var H = hash.words;\n for (var i = 0; i < 5; i++) {\n var H_i = H[i];\n H[i] = (H_i << 8 | H_i >>> 24) & 16711935 | (H_i << 24 | H_i >>> 8) & 4278255360;\n }\n return hash;\n },\n clone: function() {\n var clone = Hasher.clone.call(this);\n clone._hash = this._hash.clone();\n return clone;\n }\n });\n function f1(x, y, z) {\n return x ^ y ^ z;\n }\n function f2(x, y, z) {\n return x & y | ~x & z;\n }\n function f3(x, y, z) {\n return (x | ~y) ^ z;\n }\n function f4(x, y, z) {\n return x & z | y & ~z;\n }\n function f5(x, y, z) {\n return x ^ (y | ~z);\n }\n function rotl(x, n) {\n return x << n | x >>> 32 - n;\n }\n C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n })();\n return CryptoJS2.RIPEMD160;\n });\n })(ripemd160$1);\n return ripemd160$1.exports;\n}\nvar hmac$1 = { exports: {} };\nvar hmac = hmac$1.exports;\nvar hasRequiredHmac;\nfunction requireHmac() {\n if (hasRequiredHmac) return hmac$1.exports;\n hasRequiredHmac = 1;\n (function(module, exports) {\n (function(root, factory) {\n {\n module.exports = factory(requireCore());\n }\n })(hmac, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var C_enc = C.enc;\n var Utf8 = C_enc.Utf8;\n var C_algo = C.algo;\n C_algo.HMAC = Base.extend({\n /**\n * Initializes a newly created HMAC.\n *\n * @param {Hasher} hasher The hash algorithm to use.\n * @param {WordArray|string} key The secret key.\n *\n * @example\n *\n * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n */\n init: function(hasher, key) {\n hasher = this._hasher = new hasher.init();\n if (typeof key == \"string\") {\n key = Utf8.parse(key);\n }\n var hasherBlockSize = hasher.blockSize;\n var hasherBlockSizeBytes = hasherBlockSize * 4;\n if (key.sigBytes > hasherBlockSizeBytes) {\n key = hasher.finalize(key);\n }\n key.clamp();\n var oKey = this._oKey = key.clone();\n var iKey = this._iKey = key.clone();\n var oKeyWords = oKey.words;\n var iKeyWords = iKey.words;\n for (var i = 0; i < hasherBlockSize; i++) {\n oKeyWords[i] ^= 1549556828;\n iKeyWords[i] ^= 909522486;\n }\n oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n this.reset();\n },\n /**\n * Resets this HMAC to its initial state.\n *\n * @example\n *\n * hmacHasher.reset();\n */\n reset: function() {\n var hasher = this._hasher;\n hasher.reset();\n hasher.update(this._iKey);\n },\n /**\n * Updates this HMAC with a message.\n *\n * @param {WordArray|string} messageUpdate The message to append.\n *\n * @return {HMAC} This HMAC instance.\n *\n * @example\n *\n * hmacHasher.update('message');\n * hmacHasher.update(wordArray);\n */\n update: function(messageUpdate) {\n this._hasher.update(messageUpdate);\n return this;\n },\n /**\n * Finalizes the HMAC computation.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} messageUpdate (Optional) A final message update.\n *\n * @return {WordArray} The HMAC.\n *\n * @example\n *\n * var hmac = hmacHasher.finalize();\n * var hmac = hmacHasher.finalize('message');\n * var hmac = hmacHasher.finalize(wordArray);\n */\n finalize: function(messageUpdate) {\n var hasher = this._hasher;\n var innerHash = hasher.finalize(messageUpdate);\n hasher.reset();\n var hmac2 = hasher.finalize(this._oKey.clone().concat(innerHash));\n return hmac2;\n }\n });\n })();\n });\n })(hmac$1);\n return hmac$1.exports;\n}\nvar pbkdf2$1 = { exports: {} };\nvar pbkdf2 = pbkdf2$1.exports;\nvar hasRequiredPbkdf2;\nfunction requirePbkdf2() {\n if (hasRequiredPbkdf2) return pbkdf2$1.exports;\n hasRequiredPbkdf2 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireSha256(), requireHmac());\n }\n })(pbkdf2, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var SHA256 = C_algo.SHA256;\n var HMAC = C_algo.HMAC;\n var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hasher to use. Default: SHA256\n * @property {number} iterations The number of iterations to perform. Default: 250000\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: SHA256,\n iterations: 25e4\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.PBKDF2.create();\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n */\n init: function(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Computes the Password-Based Key Derivation Function 2.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function(password, salt) {\n var cfg = this.cfg;\n var hmac2 = HMAC.create(cfg.hasher, password);\n var derivedKey = WordArray.create();\n var blockIndex = WordArray.create([1]);\n var derivedKeyWords = derivedKey.words;\n var blockIndexWords = blockIndex.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n while (derivedKeyWords.length < keySize) {\n var block = hmac2.update(salt).finalize(blockIndex);\n hmac2.reset();\n var blockWords = block.words;\n var blockWordsLength = blockWords.length;\n var intermediate = block;\n for (var i = 1; i < iterations; i++) {\n intermediate = hmac2.finalize(intermediate);\n hmac2.reset();\n var intermediateWords = intermediate.words;\n for (var j = 0; j < blockWordsLength; j++) {\n blockWords[j] ^= intermediateWords[j];\n }\n }\n derivedKey.concat(block);\n blockIndexWords[0]++;\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n C.PBKDF2 = function(password, salt, cfg) {\n return PBKDF2.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS2.PBKDF2;\n });\n })(pbkdf2$1);\n return pbkdf2$1.exports;\n}\nvar evpkdf$1 = { exports: {} };\nvar evpkdf = evpkdf$1.exports;\nvar hasRequiredEvpkdf;\nfunction requireEvpkdf() {\n if (hasRequiredEvpkdf) return evpkdf$1.exports;\n hasRequiredEvpkdf = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireSha1(), requireHmac());\n }\n })(evpkdf, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var C_algo = C.algo;\n var MD52 = C_algo.MD5;\n var EvpKDF = C_algo.EvpKDF = Base.extend({\n /**\n * Configuration options.\n *\n * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n * @property {number} iterations The number of iterations to perform. Default: 1\n */\n cfg: Base.extend({\n keySize: 128 / 32,\n hasher: MD52,\n iterations: 1\n }),\n /**\n * Initializes a newly created key derivation function.\n *\n * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n *\n * @example\n *\n * var kdf = CryptoJS.algo.EvpKDF.create();\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n */\n init: function(cfg) {\n this.cfg = this.cfg.extend(cfg);\n },\n /**\n * Derives a key from a password.\n *\n * @param {WordArray|string} password The password.\n * @param {WordArray|string} salt A salt.\n *\n * @return {WordArray} The derived key.\n *\n * @example\n *\n * var key = kdf.compute(password, salt);\n */\n compute: function(password, salt) {\n var block;\n var cfg = this.cfg;\n var hasher = cfg.hasher.create();\n var derivedKey = WordArray.create();\n var derivedKeyWords = derivedKey.words;\n var keySize = cfg.keySize;\n var iterations = cfg.iterations;\n while (derivedKeyWords.length < keySize) {\n if (block) {\n hasher.update(block);\n }\n block = hasher.update(password).finalize(salt);\n hasher.reset();\n for (var i = 1; i < iterations; i++) {\n block = hasher.finalize(block);\n hasher.reset();\n }\n derivedKey.concat(block);\n }\n derivedKey.sigBytes = keySize * 4;\n return derivedKey;\n }\n });\n C.EvpKDF = function(password, salt, cfg) {\n return EvpKDF.create(cfg).compute(password, salt);\n };\n })();\n return CryptoJS2.EvpKDF;\n });\n })(evpkdf$1);\n return evpkdf$1.exports;\n}\nvar cipherCore$1 = { exports: {} };\nvar cipherCore = cipherCore$1.exports;\nvar hasRequiredCipherCore;\nfunction requireCipherCore() {\n if (hasRequiredCipherCore) return cipherCore$1.exports;\n hasRequiredCipherCore = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEvpkdf());\n }\n })(cipherCore, function(CryptoJS2) {\n CryptoJS2.lib.Cipher || (function(undefined$1) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var Base = C_lib.Base;\n var WordArray = C_lib.WordArray;\n var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n var C_enc = C.enc;\n C_enc.Utf8;\n var Base642 = C_enc.Base64;\n var C_algo = C.algo;\n var EvpKDF = C_algo.EvpKDF;\n var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n /**\n * Configuration options.\n *\n * @property {WordArray} iv The IV to use for this operation.\n */\n cfg: Base.extend(),\n /**\n * Creates this cipher in encryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n */\n createEncryptor: function(key, cfg) {\n return this.create(this._ENC_XFORM_MODE, key, cfg);\n },\n /**\n * Creates this cipher in decryption mode.\n *\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {Cipher} A cipher instance.\n *\n * @static\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n */\n createDecryptor: function(key, cfg) {\n return this.create(this._DEC_XFORM_MODE, key, cfg);\n },\n /**\n * Initializes a newly created cipher.\n *\n * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @example\n *\n * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n */\n init: function(xformMode, key, cfg) {\n this.cfg = this.cfg.extend(cfg);\n this._xformMode = xformMode;\n this._key = key;\n this.reset();\n },\n /**\n * Resets this cipher to its initial state.\n *\n * @example\n *\n * cipher.reset();\n */\n reset: function() {\n BufferedBlockAlgorithm.reset.call(this);\n this._doReset();\n },\n /**\n * Adds data to be encrypted or decrypted.\n *\n * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n *\n * @return {WordArray} The data after processing.\n *\n * @example\n *\n * var encrypted = cipher.process('data');\n * var encrypted = cipher.process(wordArray);\n */\n process: function(dataUpdate) {\n this._append(dataUpdate);\n return this._process();\n },\n /**\n * Finalizes the encryption or decryption process.\n * Note that the finalize operation is effectively a destructive, read-once operation.\n *\n * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n *\n * @return {WordArray} The data after final processing.\n *\n * @example\n *\n * var encrypted = cipher.finalize();\n * var encrypted = cipher.finalize('data');\n * var encrypted = cipher.finalize(wordArray);\n */\n finalize: function(dataUpdate) {\n if (dataUpdate) {\n this._append(dataUpdate);\n }\n var finalProcessedData = this._doFinalize();\n return finalProcessedData;\n },\n keySize: 128 / 32,\n ivSize: 128 / 32,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n /**\n * Creates shortcut functions to a cipher's object interface.\n *\n * @param {Cipher} cipher The cipher to create a helper for.\n *\n * @return {Object} An object with encrypt and decrypt shortcut functions.\n *\n * @static\n *\n * @example\n *\n * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n */\n _createHelper: /* @__PURE__ */ (function() {\n function selectCipherStrategy(key) {\n if (typeof key == \"string\") {\n return PasswordBasedCipher;\n } else {\n return SerializableCipher;\n }\n }\n return function(cipher) {\n return {\n encrypt: function(message, key, cfg) {\n return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n },\n decrypt: function(ciphertext, key, cfg) {\n return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n }\n };\n };\n })()\n });\n C_lib.StreamCipher = Cipher.extend({\n _doFinalize: function() {\n var finalProcessedBlocks = this._process(true);\n return finalProcessedBlocks;\n },\n blockSize: 1\n });\n var C_mode = C.mode = {};\n var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n /**\n * Creates this mode for encryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n */\n createEncryptor: function(cipher, iv) {\n return this.Encryptor.create(cipher, iv);\n },\n /**\n * Creates this mode for decryption.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @static\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n */\n createDecryptor: function(cipher, iv) {\n return this.Decryptor.create(cipher, iv);\n },\n /**\n * Initializes a newly created mode.\n *\n * @param {Cipher} cipher A block cipher instance.\n * @param {Array} iv The IV words.\n *\n * @example\n *\n * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n */\n init: function(cipher, iv) {\n this._cipher = cipher;\n this._iv = iv;\n }\n });\n var CBC = C_mode.CBC = (function() {\n var CBC2 = BlockCipherMode.extend();\n CBC2.Encryptor = CBC2.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n xorBlock.call(this, words, offset, blockSize);\n cipher.encryptBlock(words, offset);\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n CBC2.Decryptor = CBC2.extend({\n /**\n * Processes the data block at offset.\n *\n * @param {Array} words The data words to operate on.\n * @param {number} offset The offset where the block starts.\n *\n * @example\n *\n * mode.processBlock(data.words, offset);\n */\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var thisBlock = words.slice(offset, offset + blockSize);\n cipher.decryptBlock(words, offset);\n xorBlock.call(this, words, offset, blockSize);\n this._prevBlock = thisBlock;\n }\n });\n function xorBlock(words, offset, blockSize) {\n var block;\n var iv = this._iv;\n if (iv) {\n block = iv;\n this._iv = undefined$1;\n } else {\n block = this._prevBlock;\n }\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= block[i];\n }\n }\n return CBC2;\n })();\n var C_pad = C.pad = {};\n var Pkcs7 = C_pad.Pkcs7 = {\n /**\n * Pads data using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to pad.\n * @param {number} blockSize The multiple that the data should be padded to.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n */\n pad: function(data, blockSize) {\n var blockSizeBytes = blockSize * 4;\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n var paddingWord = nPaddingBytes << 24 | nPaddingBytes << 16 | nPaddingBytes << 8 | nPaddingBytes;\n var paddingWords = [];\n for (var i = 0; i < nPaddingBytes; i += 4) {\n paddingWords.push(paddingWord);\n }\n var padding = WordArray.create(paddingWords, nPaddingBytes);\n data.concat(padding);\n },\n /**\n * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n *\n * @param {WordArray} data The data to unpad.\n *\n * @static\n *\n * @example\n *\n * CryptoJS.pad.Pkcs7.unpad(wordArray);\n */\n unpad: function(data) {\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255;\n data.sigBytes -= nPaddingBytes;\n }\n };\n C_lib.BlockCipher = Cipher.extend({\n /**\n * Configuration options.\n *\n * @property {Mode} mode The block mode to use. Default: CBC\n * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n */\n cfg: Cipher.cfg.extend({\n mode: CBC,\n padding: Pkcs7\n }),\n reset: function() {\n var modeCreator;\n Cipher.reset.call(this);\n var cfg = this.cfg;\n var iv = cfg.iv;\n var mode = cfg.mode;\n if (this._xformMode == this._ENC_XFORM_MODE) {\n modeCreator = mode.createEncryptor;\n } else {\n modeCreator = mode.createDecryptor;\n this._minBufferSize = 1;\n }\n if (this._mode && this._mode.__creator == modeCreator) {\n this._mode.init(this, iv && iv.words);\n } else {\n this._mode = modeCreator.call(mode, this, iv && iv.words);\n this._mode.__creator = modeCreator;\n }\n },\n _doProcessBlock: function(words, offset) {\n this._mode.processBlock(words, offset);\n },\n _doFinalize: function() {\n var finalProcessedBlocks;\n var padding = this.cfg.padding;\n if (this._xformMode == this._ENC_XFORM_MODE) {\n padding.pad(this._data, this.blockSize);\n finalProcessedBlocks = this._process(true);\n } else {\n finalProcessedBlocks = this._process(true);\n padding.unpad(finalProcessedBlocks);\n }\n return finalProcessedBlocks;\n },\n blockSize: 128 / 32\n });\n var CipherParams = C_lib.CipherParams = Base.extend({\n /**\n * Initializes a newly created cipher params object.\n *\n * @param {Object} cipherParams An object with any of the possible cipher parameters.\n *\n * @example\n *\n * var cipherParams = CryptoJS.lib.CipherParams.create({\n * ciphertext: ciphertextWordArray,\n * key: keyWordArray,\n * iv: ivWordArray,\n * salt: saltWordArray,\n * algorithm: CryptoJS.algo.AES,\n * mode: CryptoJS.mode.CBC,\n * padding: CryptoJS.pad.PKCS7,\n * blockSize: 4,\n * formatter: CryptoJS.format.OpenSSL\n * });\n */\n init: function(cipherParams) {\n this.mixIn(cipherParams);\n },\n /**\n * Converts this cipher params object to a string.\n *\n * @param {Format} formatter (Optional) The formatting strategy to use.\n *\n * @return {string} The stringified cipher params.\n *\n * @throws Error If neither the formatter nor the default formatter is set.\n *\n * @example\n *\n * var string = cipherParams + '';\n * var string = cipherParams.toString();\n * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n */\n toString: function(formatter) {\n return (formatter || this.formatter).stringify(this);\n }\n });\n var C_format = C.format = {};\n var OpenSSLFormatter = C_format.OpenSSL = {\n /**\n * Converts a cipher params object to an OpenSSL-compatible string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The OpenSSL-compatible string.\n *\n * @static\n *\n * @example\n *\n * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n */\n stringify: function(cipherParams) {\n var wordArray;\n var ciphertext = cipherParams.ciphertext;\n var salt = cipherParams.salt;\n if (salt) {\n wordArray = WordArray.create([1398893684, 1701076831]).concat(salt).concat(ciphertext);\n } else {\n wordArray = ciphertext;\n }\n return wordArray.toString(Base642);\n },\n /**\n * Converts an OpenSSL-compatible string to a cipher params object.\n *\n * @param {string} openSSLStr The OpenSSL-compatible string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n */\n parse: function(openSSLStr) {\n var salt;\n var ciphertext = Base642.parse(openSSLStr);\n var ciphertextWords = ciphertext.words;\n if (ciphertextWords[0] == 1398893684 && ciphertextWords[1] == 1701076831) {\n salt = WordArray.create(ciphertextWords.slice(2, 4));\n ciphertextWords.splice(0, 4);\n ciphertext.sigBytes -= 16;\n }\n return CipherParams.create({ ciphertext, salt });\n }\n };\n var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n /**\n * Configuration options.\n *\n * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n */\n cfg: Base.extend({\n format: OpenSSLFormatter\n }),\n /**\n * Encrypts a message.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n encrypt: function(cipher, message, key, cfg) {\n cfg = this.cfg.extend(cfg);\n var encryptor = cipher.createEncryptor(key, cfg);\n var ciphertext = encryptor.finalize(message);\n var cipherCfg = encryptor.cfg;\n return CipherParams.create({\n ciphertext,\n key,\n iv: cipherCfg.iv,\n algorithm: cipher,\n mode: cipherCfg.mode,\n padding: cipherCfg.padding,\n blockSize: cipher.blockSize,\n formatter: cfg.format\n });\n },\n /**\n * Decrypts serialized ciphertext.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {WordArray} key The key.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n */\n decrypt: function(cipher, ciphertext, key, cfg) {\n cfg = this.cfg.extend(cfg);\n ciphertext = this._parse(ciphertext, cfg.format);\n var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n return plaintext;\n },\n /**\n * Converts serialized ciphertext to CipherParams,\n * else assumed CipherParams already and returns ciphertext unchanged.\n *\n * @param {CipherParams|string} ciphertext The ciphertext.\n * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n *\n * @return {CipherParams} The unserialized ciphertext.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n */\n _parse: function(ciphertext, format) {\n if (typeof ciphertext == \"string\") {\n return format.parse(ciphertext, this);\n } else {\n return ciphertext;\n }\n }\n });\n var C_kdf = C.kdf = {};\n var OpenSSLKdf = C_kdf.OpenSSL = {\n /**\n * Derives a key and IV from a password.\n *\n * @param {string} password The password to derive from.\n * @param {number} keySize The size in words of the key to generate.\n * @param {number} ivSize The size in words of the IV to generate.\n * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n *\n * @return {CipherParams} A cipher params object with the key, IV, and salt.\n *\n * @static\n *\n * @example\n *\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n */\n execute: function(password, keySize, ivSize, salt, hasher) {\n if (!salt) {\n salt = WordArray.random(64 / 8);\n }\n if (!hasher) {\n var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n } else {\n var key = EvpKDF.create({ keySize: keySize + ivSize, hasher }).compute(password, salt);\n }\n var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n key.sigBytes = keySize * 4;\n return CipherParams.create({ key, iv, salt });\n }\n };\n var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n /**\n * Configuration options.\n *\n * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n */\n cfg: SerializableCipher.cfg.extend({\n kdf: OpenSSLKdf\n }),\n /**\n * Encrypts a message using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {WordArray|string} message The message to encrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {CipherParams} A cipher params object.\n *\n * @static\n *\n * @example\n *\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n */\n encrypt: function(cipher, message, password, cfg) {\n cfg = this.cfg.extend(cfg);\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n cfg.iv = derivedParams.iv;\n var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n ciphertext.mixIn(derivedParams);\n return ciphertext;\n },\n /**\n * Decrypts serialized ciphertext using a password.\n *\n * @param {Cipher} cipher The cipher algorithm to use.\n * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n * @param {string} password The password.\n * @param {Object} cfg (Optional) The configuration options to use for this operation.\n *\n * @return {WordArray} The plaintext.\n *\n * @static\n *\n * @example\n *\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n */\n decrypt: function(cipher, ciphertext, password, cfg) {\n cfg = this.cfg.extend(cfg);\n ciphertext = this._parse(ciphertext, cfg.format);\n var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n cfg.iv = derivedParams.iv;\n var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n return plaintext;\n }\n });\n })();\n });\n })(cipherCore$1);\n return cipherCore$1.exports;\n}\nvar modeCfb$1 = { exports: {} };\nvar modeCfb = modeCfb$1.exports;\nvar hasRequiredModeCfb;\nfunction requireModeCfb() {\n if (hasRequiredModeCfb) return modeCfb$1.exports;\n hasRequiredModeCfb = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(modeCfb, function(CryptoJS2) {\n CryptoJS2.mode.CFB = (function() {\n var CFB = CryptoJS2.lib.BlockCipherMode.extend();\n CFB.Encryptor = CFB.extend({\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n this._prevBlock = words.slice(offset, offset + blockSize);\n }\n });\n CFB.Decryptor = CFB.extend({\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var thisBlock = words.slice(offset, offset + blockSize);\n generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n this._prevBlock = thisBlock;\n }\n });\n function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n var keystream;\n var iv = this._iv;\n if (iv) {\n keystream = iv.slice(0);\n this._iv = void 0;\n } else {\n keystream = this._prevBlock;\n }\n cipher.encryptBlock(keystream, 0);\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n return CFB;\n })();\n return CryptoJS2.mode.CFB;\n });\n })(modeCfb$1);\n return modeCfb$1.exports;\n}\nvar modeCtr$1 = { exports: {} };\nvar modeCtr = modeCtr$1.exports;\nvar hasRequiredModeCtr;\nfunction requireModeCtr() {\n if (hasRequiredModeCtr) return modeCtr$1.exports;\n hasRequiredModeCtr = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(modeCtr, function(CryptoJS2) {\n CryptoJS2.mode.CTR = (function() {\n var CTR = CryptoJS2.lib.BlockCipherMode.extend();\n var Encryptor = CTR.Encryptor = CTR.extend({\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var counter = this._counter;\n if (iv) {\n counter = this._counter = iv.slice(0);\n this._iv = void 0;\n }\n var keystream = counter.slice(0);\n cipher.encryptBlock(keystream, 0);\n counter[blockSize - 1] = counter[blockSize - 1] + 1 | 0;\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n CTR.Decryptor = Encryptor;\n return CTR;\n })();\n return CryptoJS2.mode.CTR;\n });\n })(modeCtr$1);\n return modeCtr$1.exports;\n}\nvar modeCtrGladman$1 = { exports: {} };\nvar modeCtrGladman = modeCtrGladman$1.exports;\nvar hasRequiredModeCtrGladman;\nfunction requireModeCtrGladman() {\n if (hasRequiredModeCtrGladman) return modeCtrGladman$1.exports;\n hasRequiredModeCtrGladman = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(modeCtrGladman, function(CryptoJS2) {\n /** @preserve\n * Counter block mode compatible with Dr Brian Gladman fileenc.c\n * derived from CryptoJS.mode.CTR\n * Jan Hruby jhruby.web@gmail.com\n */\n CryptoJS2.mode.CTRGladman = (function() {\n var CTRGladman = CryptoJS2.lib.BlockCipherMode.extend();\n function incWord(word) {\n if ((word >> 24 & 255) === 255) {\n var b1 = word >> 16 & 255;\n var b2 = word >> 8 & 255;\n var b3 = word & 255;\n if (b1 === 255) {\n b1 = 0;\n if (b2 === 255) {\n b2 = 0;\n if (b3 === 255) {\n b3 = 0;\n } else {\n ++b3;\n }\n } else {\n ++b2;\n }\n } else {\n ++b1;\n }\n word = 0;\n word += b1 << 16;\n word += b2 << 8;\n word += b3;\n } else {\n word += 1 << 24;\n }\n return word;\n }\n function incCounter(counter) {\n if ((counter[0] = incWord(counter[0])) === 0) {\n counter[1] = incWord(counter[1]);\n }\n return counter;\n }\n var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var counter = this._counter;\n if (iv) {\n counter = this._counter = iv.slice(0);\n this._iv = void 0;\n }\n incCounter(counter);\n var keystream = counter.slice(0);\n cipher.encryptBlock(keystream, 0);\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n CTRGladman.Decryptor = Encryptor;\n return CTRGladman;\n })();\n return CryptoJS2.mode.CTRGladman;\n });\n })(modeCtrGladman$1);\n return modeCtrGladman$1.exports;\n}\nvar modeOfb$1 = { exports: {} };\nvar modeOfb = modeOfb$1.exports;\nvar hasRequiredModeOfb;\nfunction requireModeOfb() {\n if (hasRequiredModeOfb) return modeOfb$1.exports;\n hasRequiredModeOfb = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(modeOfb, function(CryptoJS2) {\n CryptoJS2.mode.OFB = (function() {\n var OFB = CryptoJS2.lib.BlockCipherMode.extend();\n var Encryptor = OFB.Encryptor = OFB.extend({\n processBlock: function(words, offset) {\n var cipher = this._cipher;\n var blockSize = cipher.blockSize;\n var iv = this._iv;\n var keystream = this._keystream;\n if (iv) {\n keystream = this._keystream = iv.slice(0);\n this._iv = void 0;\n }\n cipher.encryptBlock(keystream, 0);\n for (var i = 0; i < blockSize; i++) {\n words[offset + i] ^= keystream[i];\n }\n }\n });\n OFB.Decryptor = Encryptor;\n return OFB;\n })();\n return CryptoJS2.mode.OFB;\n });\n })(modeOfb$1);\n return modeOfb$1.exports;\n}\nvar modeEcb$1 = { exports: {} };\nvar modeEcb = modeEcb$1.exports;\nvar hasRequiredModeEcb;\nfunction requireModeEcb() {\n if (hasRequiredModeEcb) return modeEcb$1.exports;\n hasRequiredModeEcb = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(modeEcb, function(CryptoJS2) {\n CryptoJS2.mode.ECB = (function() {\n var ECB = CryptoJS2.lib.BlockCipherMode.extend();\n ECB.Encryptor = ECB.extend({\n processBlock: function(words, offset) {\n this._cipher.encryptBlock(words, offset);\n }\n });\n ECB.Decryptor = ECB.extend({\n processBlock: function(words, offset) {\n this._cipher.decryptBlock(words, offset);\n }\n });\n return ECB;\n })();\n return CryptoJS2.mode.ECB;\n });\n })(modeEcb$1);\n return modeEcb$1.exports;\n}\nvar padAnsix923$1 = { exports: {} };\nvar padAnsix923 = padAnsix923$1.exports;\nvar hasRequiredPadAnsix923;\nfunction requirePadAnsix923() {\n if (hasRequiredPadAnsix923) return padAnsix923$1.exports;\n hasRequiredPadAnsix923 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(padAnsix923, function(CryptoJS2) {\n CryptoJS2.pad.AnsiX923 = {\n pad: function(data, blockSize) {\n var dataSigBytes = data.sigBytes;\n var blockSizeBytes = blockSize * 4;\n var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n data.clamp();\n data.words[lastBytePos >>> 2] |= nPaddingBytes << 24 - lastBytePos % 4 * 8;\n data.sigBytes += nPaddingBytes;\n },\n unpad: function(data) {\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255;\n data.sigBytes -= nPaddingBytes;\n }\n };\n return CryptoJS2.pad.Ansix923;\n });\n })(padAnsix923$1);\n return padAnsix923$1.exports;\n}\nvar padIso10126$1 = { exports: {} };\nvar padIso10126 = padIso10126$1.exports;\nvar hasRequiredPadIso10126;\nfunction requirePadIso10126() {\n if (hasRequiredPadIso10126) return padIso10126$1.exports;\n hasRequiredPadIso10126 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(padIso10126, function(CryptoJS2) {\n CryptoJS2.pad.Iso10126 = {\n pad: function(data, blockSize) {\n var blockSizeBytes = blockSize * 4;\n var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n data.concat(CryptoJS2.lib.WordArray.random(nPaddingBytes - 1)).concat(CryptoJS2.lib.WordArray.create([nPaddingBytes << 24], 1));\n },\n unpad: function(data) {\n var nPaddingBytes = data.words[data.sigBytes - 1 >>> 2] & 255;\n data.sigBytes -= nPaddingBytes;\n }\n };\n return CryptoJS2.pad.Iso10126;\n });\n })(padIso10126$1);\n return padIso10126$1.exports;\n}\nvar padIso97971$1 = { exports: {} };\nvar padIso97971 = padIso97971$1.exports;\nvar hasRequiredPadIso97971;\nfunction requirePadIso97971() {\n if (hasRequiredPadIso97971) return padIso97971$1.exports;\n hasRequiredPadIso97971 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(padIso97971, function(CryptoJS2) {\n CryptoJS2.pad.Iso97971 = {\n pad: function(data, blockSize) {\n data.concat(CryptoJS2.lib.WordArray.create([2147483648], 1));\n CryptoJS2.pad.ZeroPadding.pad(data, blockSize);\n },\n unpad: function(data) {\n CryptoJS2.pad.ZeroPadding.unpad(data);\n data.sigBytes--;\n }\n };\n return CryptoJS2.pad.Iso97971;\n });\n })(padIso97971$1);\n return padIso97971$1.exports;\n}\nvar padZeropadding$1 = { exports: {} };\nvar padZeropadding = padZeropadding$1.exports;\nvar hasRequiredPadZeropadding;\nfunction requirePadZeropadding() {\n if (hasRequiredPadZeropadding) return padZeropadding$1.exports;\n hasRequiredPadZeropadding = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(padZeropadding, function(CryptoJS2) {\n CryptoJS2.pad.ZeroPadding = {\n pad: function(data, blockSize) {\n var blockSizeBytes = blockSize * 4;\n data.clamp();\n data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes);\n },\n unpad: function(data) {\n var dataWords = data.words;\n var i = data.sigBytes - 1;\n for (var i = data.sigBytes - 1; i >= 0; i--) {\n if (dataWords[i >>> 2] >>> 24 - i % 4 * 8 & 255) {\n data.sigBytes = i + 1;\n break;\n }\n }\n }\n };\n return CryptoJS2.pad.ZeroPadding;\n });\n })(padZeropadding$1);\n return padZeropadding$1.exports;\n}\nvar padNopadding$1 = { exports: {} };\nvar padNopadding = padNopadding$1.exports;\nvar hasRequiredPadNopadding;\nfunction requirePadNopadding() {\n if (hasRequiredPadNopadding) return padNopadding$1.exports;\n hasRequiredPadNopadding = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(padNopadding, function(CryptoJS2) {\n CryptoJS2.pad.NoPadding = {\n pad: function() {\n },\n unpad: function() {\n }\n };\n return CryptoJS2.pad.NoPadding;\n });\n })(padNopadding$1);\n return padNopadding$1.exports;\n}\nvar formatHex$1 = { exports: {} };\nvar formatHex = formatHex$1.exports;\nvar hasRequiredFormatHex;\nfunction requireFormatHex() {\n if (hasRequiredFormatHex) return formatHex$1.exports;\n hasRequiredFormatHex = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireCipherCore());\n }\n })(formatHex, function(CryptoJS2) {\n (function(undefined$1) {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var CipherParams = C_lib.CipherParams;\n var C_enc = C.enc;\n var Hex2 = C_enc.Hex;\n var C_format = C.format;\n C_format.Hex = {\n /**\n * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n *\n * @param {CipherParams} cipherParams The cipher params object.\n *\n * @return {string} The hexadecimally encoded string.\n *\n * @static\n *\n * @example\n *\n * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n */\n stringify: function(cipherParams) {\n return cipherParams.ciphertext.toString(Hex2);\n },\n /**\n * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n *\n * @param {string} input The hexadecimally encoded string.\n *\n * @return {CipherParams} The cipher params object.\n *\n * @static\n *\n * @example\n *\n * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n */\n parse: function(input) {\n var ciphertext = Hex2.parse(input);\n return CipherParams.create({ ciphertext });\n }\n };\n })();\n return CryptoJS2.format.Hex;\n });\n })(formatHex$1);\n return formatHex$1.exports;\n}\nvar aes$1 = { exports: {} };\nvar aes = aes$1.exports;\nvar hasRequiredAes;\nfunction requireAes() {\n if (hasRequiredAes) return aes$1.exports;\n hasRequiredAes = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEncBase64(), requireMd5(), requireEvpkdf(), requireCipherCore());\n }\n })(aes, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n var SBOX = [];\n var INV_SBOX = [];\n var SUB_MIX_0 = [];\n var SUB_MIX_1 = [];\n var SUB_MIX_2 = [];\n var SUB_MIX_3 = [];\n var INV_SUB_MIX_0 = [];\n var INV_SUB_MIX_1 = [];\n var INV_SUB_MIX_2 = [];\n var INV_SUB_MIX_3 = [];\n (function() {\n var d = [];\n for (var i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = i << 1 ^ 283;\n }\n }\n var x = 0;\n var xi = 0;\n for (var i = 0; i < 256; i++) {\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 255 ^ 99;\n SBOX[x] = sx;\n INV_SBOX[sx] = x;\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4];\n var t = d[sx] * 257 ^ sx * 16843008;\n SUB_MIX_0[x] = t << 24 | t >>> 8;\n SUB_MIX_1[x] = t << 16 | t >>> 16;\n SUB_MIX_2[x] = t << 8 | t >>> 24;\n SUB_MIX_3[x] = t;\n var t = x8 * 16843009 ^ x4 * 65537 ^ x2 * 257 ^ x * 16843008;\n INV_SUB_MIX_0[sx] = t << 24 | t >>> 8;\n INV_SUB_MIX_1[sx] = t << 16 | t >>> 16;\n INV_SUB_MIX_2[sx] = t << 8 | t >>> 24;\n INV_SUB_MIX_3[sx] = t;\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n })();\n var RCON = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];\n var AES = C_algo.AES = BlockCipher.extend({\n _doReset: function() {\n var t;\n if (this._nRounds && this._keyPriorReset === this._key) {\n return;\n }\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n var nRounds = this._nRounds = keySize + 6;\n var ksRows = (nRounds + 1) * 4;\n var keySchedule = this._keySchedule = [];\n for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n keySchedule[ksRow] = keyWords[ksRow];\n } else {\n t = keySchedule[ksRow - 1];\n if (!(ksRow % keySize)) {\n t = t << 8 | t >>> 24;\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255];\n t ^= RCON[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize == 4) {\n t = SBOX[t >>> 24] << 24 | SBOX[t >>> 16 & 255] << 16 | SBOX[t >>> 8 & 255] << 8 | SBOX[t & 255];\n }\n keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n }\n }\n var invKeySchedule = this._invKeySchedule = [];\n for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n var ksRow = ksRows - invKsRow;\n if (invKsRow % 4) {\n var t = keySchedule[ksRow];\n } else {\n var t = keySchedule[ksRow - 4];\n }\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[t >>> 16 & 255]] ^ INV_SUB_MIX_2[SBOX[t >>> 8 & 255]] ^ INV_SUB_MIX_3[SBOX[t & 255]];\n }\n }\n },\n encryptBlock: function(M, offset) {\n this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n },\n decryptBlock: function(M, offset) {\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n var t = M[offset + 1];\n M[offset + 1] = M[offset + 3];\n M[offset + 3] = t;\n },\n _doCryptBlock: function(M, offset, keySchedule, SUB_MIX_02, SUB_MIX_12, SUB_MIX_22, SUB_MIX_32, SBOX2) {\n var nRounds = this._nRounds;\n var s0 = M[offset] ^ keySchedule[0];\n var s1 = M[offset + 1] ^ keySchedule[1];\n var s2 = M[offset + 2] ^ keySchedule[2];\n var s3 = M[offset + 3] ^ keySchedule[3];\n var ksRow = 4;\n for (var round = 1; round < nRounds; round++) {\n var t0 = SUB_MIX_02[s0 >>> 24] ^ SUB_MIX_12[s1 >>> 16 & 255] ^ SUB_MIX_22[s2 >>> 8 & 255] ^ SUB_MIX_32[s3 & 255] ^ keySchedule[ksRow++];\n var t1 = SUB_MIX_02[s1 >>> 24] ^ SUB_MIX_12[s2 >>> 16 & 255] ^ SUB_MIX_22[s3 >>> 8 & 255] ^ SUB_MIX_32[s0 & 255] ^ keySchedule[ksRow++];\n var t2 = SUB_MIX_02[s2 >>> 24] ^ SUB_MIX_12[s3 >>> 16 & 255] ^ SUB_MIX_22[s0 >>> 8 & 255] ^ SUB_MIX_32[s1 & 255] ^ keySchedule[ksRow++];\n var t3 = SUB_MIX_02[s3 >>> 24] ^ SUB_MIX_12[s0 >>> 16 & 255] ^ SUB_MIX_22[s1 >>> 8 & 255] ^ SUB_MIX_32[s2 & 255] ^ keySchedule[ksRow++];\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n }\n var t0 = (SBOX2[s0 >>> 24] << 24 | SBOX2[s1 >>> 16 & 255] << 16 | SBOX2[s2 >>> 8 & 255] << 8 | SBOX2[s3 & 255]) ^ keySchedule[ksRow++];\n var t1 = (SBOX2[s1 >>> 24] << 24 | SBOX2[s2 >>> 16 & 255] << 16 | SBOX2[s3 >>> 8 & 255] << 8 | SBOX2[s0 & 255]) ^ keySchedule[ksRow++];\n var t2 = (SBOX2[s2 >>> 24] << 24 | SBOX2[s3 >>> 16 & 255] << 16 | SBOX2[s0 >>> 8 & 255] << 8 | SBOX2[s1 & 255]) ^ keySchedule[ksRow++];\n var t3 = (SBOX2[s3 >>> 24] << 24 | SBOX2[s0 >>> 16 & 255] << 16 | SBOX2[s1 >>> 8 & 255] << 8 | SBOX2[s2 & 255]) ^ keySchedule[ksRow++];\n M[offset] = t0;\n M[offset + 1] = t1;\n M[offset + 2] = t2;\n M[offset + 3] = t3;\n },\n keySize: 256 / 32\n });\n C.AES = BlockCipher._createHelper(AES);\n })();\n return CryptoJS2.AES;\n });\n })(aes$1);\n return aes$1.exports;\n}\nvar tripledes$1 = { exports: {} };\nvar tripledes = tripledes$1.exports;\nvar hasRequiredTripledes;\nfunction requireTripledes() {\n if (hasRequiredTripledes) return tripledes$1.exports;\n hasRequiredTripledes = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEncBase64(), requireMd5(), requireEvpkdf(), requireCipherCore());\n }\n })(tripledes, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var WordArray = C_lib.WordArray;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n var PC1 = [\n 57,\n 49,\n 41,\n 33,\n 25,\n 17,\n 9,\n 1,\n 58,\n 50,\n 42,\n 34,\n 26,\n 18,\n 10,\n 2,\n 59,\n 51,\n 43,\n 35,\n 27,\n 19,\n 11,\n 3,\n 60,\n 52,\n 44,\n 36,\n 63,\n 55,\n 47,\n 39,\n 31,\n 23,\n 15,\n 7,\n 62,\n 54,\n 46,\n 38,\n 30,\n 22,\n 14,\n 6,\n 61,\n 53,\n 45,\n 37,\n 29,\n 21,\n 13,\n 5,\n 28,\n 20,\n 12,\n 4\n ];\n var PC2 = [\n 14,\n 17,\n 11,\n 24,\n 1,\n 5,\n 3,\n 28,\n 15,\n 6,\n 21,\n 10,\n 23,\n 19,\n 12,\n 4,\n 26,\n 8,\n 16,\n 7,\n 27,\n 20,\n 13,\n 2,\n 41,\n 52,\n 31,\n 37,\n 47,\n 55,\n 30,\n 40,\n 51,\n 45,\n 33,\n 48,\n 44,\n 49,\n 39,\n 56,\n 34,\n 53,\n 46,\n 42,\n 50,\n 36,\n 29,\n 32\n ];\n var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n var SBOX_P = [\n {\n 0: 8421888,\n 268435456: 32768,\n 536870912: 8421378,\n 805306368: 2,\n 1073741824: 512,\n 1342177280: 8421890,\n 1610612736: 8389122,\n 1879048192: 8388608,\n 2147483648: 514,\n 2415919104: 8389120,\n 2684354560: 33280,\n 2952790016: 8421376,\n 3221225472: 32770,\n 3489660928: 8388610,\n 3758096384: 0,\n 4026531840: 33282,\n 134217728: 0,\n 402653184: 8421890,\n 671088640: 33282,\n 939524096: 32768,\n 1207959552: 8421888,\n 1476395008: 512,\n 1744830464: 8421378,\n 2013265920: 2,\n 2281701376: 8389120,\n 2550136832: 33280,\n 2818572288: 8421376,\n 3087007744: 8389122,\n 3355443200: 8388610,\n 3623878656: 32770,\n 3892314112: 514,\n 4160749568: 8388608,\n 1: 32768,\n 268435457: 2,\n 536870913: 8421888,\n 805306369: 8388608,\n 1073741825: 8421378,\n 1342177281: 33280,\n 1610612737: 512,\n 1879048193: 8389122,\n 2147483649: 8421890,\n 2415919105: 8421376,\n 2684354561: 8388610,\n 2952790017: 33282,\n 3221225473: 514,\n 3489660929: 8389120,\n 3758096385: 32770,\n 4026531841: 0,\n 134217729: 8421890,\n 402653185: 8421376,\n 671088641: 8388608,\n 939524097: 512,\n 1207959553: 32768,\n 1476395009: 8388610,\n 1744830465: 2,\n 2013265921: 33282,\n 2281701377: 32770,\n 2550136833: 8389122,\n 2818572289: 514,\n 3087007745: 8421888,\n 3355443201: 8389120,\n 3623878657: 0,\n 3892314113: 33280,\n 4160749569: 8421378\n },\n {\n 0: 1074282512,\n 16777216: 16384,\n 33554432: 524288,\n 50331648: 1074266128,\n 67108864: 1073741840,\n 83886080: 1074282496,\n 100663296: 1073758208,\n 117440512: 16,\n 134217728: 540672,\n 150994944: 1073758224,\n 167772160: 1073741824,\n 184549376: 540688,\n 201326592: 524304,\n 218103808: 0,\n 234881024: 16400,\n 251658240: 1074266112,\n 8388608: 1073758208,\n 25165824: 540688,\n 41943040: 16,\n 58720256: 1073758224,\n 75497472: 1074282512,\n 92274688: 1073741824,\n 109051904: 524288,\n 125829120: 1074266128,\n 142606336: 524304,\n 159383552: 0,\n 176160768: 16384,\n 192937984: 1074266112,\n 209715200: 1073741840,\n 226492416: 540672,\n 243269632: 1074282496,\n 260046848: 16400,\n 268435456: 0,\n 285212672: 1074266128,\n 301989888: 1073758224,\n 318767104: 1074282496,\n 335544320: 1074266112,\n 352321536: 16,\n 369098752: 540688,\n 385875968: 16384,\n 402653184: 16400,\n 419430400: 524288,\n 436207616: 524304,\n 452984832: 1073741840,\n 469762048: 540672,\n 486539264: 1073758208,\n 503316480: 1073741824,\n 520093696: 1074282512,\n 276824064: 540688,\n 293601280: 524288,\n 310378496: 1074266112,\n 327155712: 16384,\n 343932928: 1073758208,\n 360710144: 1074282512,\n 377487360: 16,\n 394264576: 1073741824,\n 411041792: 1074282496,\n 427819008: 1073741840,\n 444596224: 1073758224,\n 461373440: 524304,\n 478150656: 0,\n 494927872: 16400,\n 511705088: 1074266128,\n 528482304: 540672\n },\n {\n 0: 260,\n 1048576: 0,\n 2097152: 67109120,\n 3145728: 65796,\n 4194304: 65540,\n 5242880: 67108868,\n 6291456: 67174660,\n 7340032: 67174400,\n 8388608: 67108864,\n 9437184: 67174656,\n 10485760: 65792,\n 11534336: 67174404,\n 12582912: 67109124,\n 13631488: 65536,\n 14680064: 4,\n 15728640: 256,\n 524288: 67174656,\n 1572864: 67174404,\n 2621440: 0,\n 3670016: 67109120,\n 4718592: 67108868,\n 5767168: 65536,\n 6815744: 65540,\n 7864320: 260,\n 8912896: 4,\n 9961472: 256,\n 11010048: 67174400,\n 12058624: 65796,\n 13107200: 65792,\n 14155776: 67109124,\n 15204352: 67174660,\n 16252928: 67108864,\n 16777216: 67174656,\n 17825792: 65540,\n 18874368: 65536,\n 19922944: 67109120,\n 20971520: 256,\n 22020096: 67174660,\n 23068672: 67108868,\n 24117248: 0,\n 25165824: 67109124,\n 26214400: 67108864,\n 27262976: 4,\n 28311552: 65792,\n 29360128: 67174400,\n 30408704: 260,\n 31457280: 65796,\n 32505856: 67174404,\n 17301504: 67108864,\n 18350080: 260,\n 19398656: 67174656,\n 20447232: 0,\n 21495808: 65540,\n 22544384: 67109120,\n 23592960: 256,\n 24641536: 67174404,\n 25690112: 65536,\n 26738688: 67174660,\n 27787264: 65796,\n 28835840: 67108868,\n 29884416: 67109124,\n 30932992: 67174400,\n 31981568: 4,\n 33030144: 65792\n },\n {\n 0: 2151682048,\n 65536: 2147487808,\n 131072: 4198464,\n 196608: 2151677952,\n 262144: 0,\n 327680: 4198400,\n 393216: 2147483712,\n 458752: 4194368,\n 524288: 2147483648,\n 589824: 4194304,\n 655360: 64,\n 720896: 2147487744,\n 786432: 2151678016,\n 851968: 4160,\n 917504: 4096,\n 983040: 2151682112,\n 32768: 2147487808,\n 98304: 64,\n 163840: 2151678016,\n 229376: 2147487744,\n 294912: 4198400,\n 360448: 2151682112,\n 425984: 0,\n 491520: 2151677952,\n 557056: 4096,\n 622592: 2151682048,\n 688128: 4194304,\n 753664: 4160,\n 819200: 2147483648,\n 884736: 4194368,\n 950272: 4198464,\n 1015808: 2147483712,\n 1048576: 4194368,\n 1114112: 4198400,\n 1179648: 2147483712,\n 1245184: 0,\n 1310720: 4160,\n 1376256: 2151678016,\n 1441792: 2151682048,\n 1507328: 2147487808,\n 1572864: 2151682112,\n 1638400: 2147483648,\n 1703936: 2151677952,\n 1769472: 4198464,\n 1835008: 2147487744,\n 1900544: 4194304,\n 1966080: 64,\n 2031616: 4096,\n 1081344: 2151677952,\n 1146880: 2151682112,\n 1212416: 0,\n 1277952: 4198400,\n 1343488: 4194368,\n 1409024: 2147483648,\n 1474560: 2147487808,\n 1540096: 64,\n 1605632: 2147483712,\n 1671168: 4096,\n 1736704: 2147487744,\n 1802240: 2151678016,\n 1867776: 4160,\n 1933312: 2151682048,\n 1998848: 4194304,\n 2064384: 4198464\n },\n {\n 0: 128,\n 4096: 17039360,\n 8192: 262144,\n 12288: 536870912,\n 16384: 537133184,\n 20480: 16777344,\n 24576: 553648256,\n 28672: 262272,\n 32768: 16777216,\n 36864: 537133056,\n 40960: 536871040,\n 45056: 553910400,\n 49152: 553910272,\n 53248: 0,\n 57344: 17039488,\n 61440: 553648128,\n 2048: 17039488,\n 6144: 553648256,\n 10240: 128,\n 14336: 17039360,\n 18432: 262144,\n 22528: 537133184,\n 26624: 553910272,\n 30720: 536870912,\n 34816: 537133056,\n 38912: 0,\n 43008: 553910400,\n 47104: 16777344,\n 51200: 536871040,\n 55296: 553648128,\n 59392: 16777216,\n 63488: 262272,\n 65536: 262144,\n 69632: 128,\n 73728: 536870912,\n 77824: 553648256,\n 81920: 16777344,\n 86016: 553910272,\n 90112: 537133184,\n 94208: 16777216,\n 98304: 553910400,\n 102400: 553648128,\n 106496: 17039360,\n 110592: 537133056,\n 114688: 262272,\n 118784: 536871040,\n 122880: 0,\n 126976: 17039488,\n 67584: 553648256,\n 71680: 16777216,\n 75776: 17039360,\n 79872: 537133184,\n 83968: 536870912,\n 88064: 17039488,\n 92160: 128,\n 96256: 553910272,\n 100352: 262272,\n 104448: 553910400,\n 108544: 0,\n 112640: 553648128,\n 116736: 16777344,\n 120832: 262144,\n 124928: 537133056,\n 129024: 536871040\n },\n {\n 0: 268435464,\n 256: 8192,\n 512: 270532608,\n 768: 270540808,\n 1024: 268443648,\n 1280: 2097152,\n 1536: 2097160,\n 1792: 268435456,\n 2048: 0,\n 2304: 268443656,\n 2560: 2105344,\n 2816: 8,\n 3072: 270532616,\n 3328: 2105352,\n 3584: 8200,\n 3840: 270540800,\n 128: 270532608,\n 384: 270540808,\n 640: 8,\n 896: 2097152,\n 1152: 2105352,\n 1408: 268435464,\n 1664: 268443648,\n 1920: 8200,\n 2176: 2097160,\n 2432: 8192,\n 2688: 268443656,\n 2944: 270532616,\n 3200: 0,\n 3456: 270540800,\n 3712: 2105344,\n 3968: 268435456,\n 4096: 268443648,\n 4352: 270532616,\n 4608: 270540808,\n 4864: 8200,\n 5120: 2097152,\n 5376: 268435456,\n 5632: 268435464,\n 5888: 2105344,\n 6144: 2105352,\n 6400: 0,\n 6656: 8,\n 6912: 270532608,\n 7168: 8192,\n 7424: 268443656,\n 7680: 270540800,\n 7936: 2097160,\n 4224: 8,\n 4480: 2105344,\n 4736: 2097152,\n 4992: 268435464,\n 5248: 268443648,\n 5504: 8200,\n 5760: 270540808,\n 6016: 270532608,\n 6272: 270540800,\n 6528: 270532616,\n 6784: 8192,\n 7040: 2105352,\n 7296: 2097160,\n 7552: 0,\n 7808: 268435456,\n 8064: 268443656\n },\n {\n 0: 1048576,\n 16: 33555457,\n 32: 1024,\n 48: 1049601,\n 64: 34604033,\n 80: 0,\n 96: 1,\n 112: 34603009,\n 128: 33555456,\n 144: 1048577,\n 160: 33554433,\n 176: 34604032,\n 192: 34603008,\n 208: 1025,\n 224: 1049600,\n 240: 33554432,\n 8: 34603009,\n 24: 0,\n 40: 33555457,\n 56: 34604032,\n 72: 1048576,\n 88: 33554433,\n 104: 33554432,\n 120: 1025,\n 136: 1049601,\n 152: 33555456,\n 168: 34603008,\n 184: 1048577,\n 200: 1024,\n 216: 34604033,\n 232: 1,\n 248: 1049600,\n 256: 33554432,\n 272: 1048576,\n 288: 33555457,\n 304: 34603009,\n 320: 1048577,\n 336: 33555456,\n 352: 34604032,\n 368: 1049601,\n 384: 1025,\n 400: 34604033,\n 416: 1049600,\n 432: 1,\n 448: 0,\n 464: 34603008,\n 480: 33554433,\n 496: 1024,\n 264: 1049600,\n 280: 33555457,\n 296: 34603009,\n 312: 1,\n 328: 33554432,\n 344: 1048576,\n 360: 1025,\n 376: 34604032,\n 392: 33554433,\n 408: 34603008,\n 424: 0,\n 440: 34604033,\n 456: 1049601,\n 472: 1024,\n 488: 33555456,\n 504: 1048577\n },\n {\n 0: 134219808,\n 1: 131072,\n 2: 134217728,\n 3: 32,\n 4: 131104,\n 5: 134350880,\n 6: 134350848,\n 7: 2048,\n 8: 134348800,\n 9: 134219776,\n 10: 133120,\n 11: 134348832,\n 12: 2080,\n 13: 0,\n 14: 134217760,\n 15: 133152,\n 2147483648: 2048,\n 2147483649: 134350880,\n 2147483650: 134219808,\n 2147483651: 134217728,\n 2147483652: 134348800,\n 2147483653: 133120,\n 2147483654: 133152,\n 2147483655: 32,\n 2147483656: 134217760,\n 2147483657: 2080,\n 2147483658: 131104,\n 2147483659: 134350848,\n 2147483660: 0,\n 2147483661: 134348832,\n 2147483662: 134219776,\n 2147483663: 131072,\n 16: 133152,\n 17: 134350848,\n 18: 32,\n 19: 2048,\n 20: 134219776,\n 21: 134217760,\n 22: 134348832,\n 23: 131072,\n 24: 0,\n 25: 131104,\n 26: 134348800,\n 27: 134219808,\n 28: 134350880,\n 29: 133120,\n 30: 2080,\n 31: 134217728,\n 2147483664: 131072,\n 2147483665: 2048,\n 2147483666: 134348832,\n 2147483667: 133152,\n 2147483668: 32,\n 2147483669: 134348800,\n 2147483670: 134217728,\n 2147483671: 134219808,\n 2147483672: 134350880,\n 2147483673: 134217760,\n 2147483674: 134219776,\n 2147483675: 0,\n 2147483676: 133120,\n 2147483677: 2080,\n 2147483678: 131104,\n 2147483679: 134350848\n }\n ];\n var SBOX_MASK = [\n 4160749569,\n 528482304,\n 33030144,\n 2064384,\n 129024,\n 8064,\n 504,\n 2147483679\n ];\n var DES = C_algo.DES = BlockCipher.extend({\n _doReset: function() {\n var key = this._key;\n var keyWords = key.words;\n var keyBits = [];\n for (var i = 0; i < 56; i++) {\n var keyBitPos = PC1[i] - 1;\n keyBits[i] = keyWords[keyBitPos >>> 5] >>> 31 - keyBitPos % 32 & 1;\n }\n var subKeys = this._subKeys = [];\n for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n var subKey = subKeys[nSubKey] = [];\n var bitShift = BIT_SHIFTS[nSubKey];\n for (var i = 0; i < 24; i++) {\n subKey[i / 6 | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << 31 - i % 6;\n subKey[4 + (i / 6 | 0)] |= keyBits[28 + (PC2[i + 24] - 1 + bitShift) % 28] << 31 - i % 6;\n }\n subKey[0] = subKey[0] << 1 | subKey[0] >>> 31;\n for (var i = 1; i < 7; i++) {\n subKey[i] = subKey[i] >>> (i - 1) * 4 + 3;\n }\n subKey[7] = subKey[7] << 5 | subKey[7] >>> 27;\n }\n var invSubKeys = this._invSubKeys = [];\n for (var i = 0; i < 16; i++) {\n invSubKeys[i] = subKeys[15 - i];\n }\n },\n encryptBlock: function(M, offset) {\n this._doCryptBlock(M, offset, this._subKeys);\n },\n decryptBlock: function(M, offset) {\n this._doCryptBlock(M, offset, this._invSubKeys);\n },\n _doCryptBlock: function(M, offset, subKeys) {\n this._lBlock = M[offset];\n this._rBlock = M[offset + 1];\n exchangeLR.call(this, 4, 252645135);\n exchangeLR.call(this, 16, 65535);\n exchangeRL.call(this, 2, 858993459);\n exchangeRL.call(this, 8, 16711935);\n exchangeLR.call(this, 1, 1431655765);\n for (var round = 0; round < 16; round++) {\n var subKey = subKeys[round];\n var lBlock = this._lBlock;\n var rBlock = this._rBlock;\n var f = 0;\n for (var i = 0; i < 8; i++) {\n f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n }\n this._lBlock = rBlock;\n this._rBlock = lBlock ^ f;\n }\n var t = this._lBlock;\n this._lBlock = this._rBlock;\n this._rBlock = t;\n exchangeLR.call(this, 1, 1431655765);\n exchangeRL.call(this, 8, 16711935);\n exchangeRL.call(this, 2, 858993459);\n exchangeLR.call(this, 16, 65535);\n exchangeLR.call(this, 4, 252645135);\n M[offset] = this._lBlock;\n M[offset + 1] = this._rBlock;\n },\n keySize: 64 / 32,\n ivSize: 64 / 32,\n blockSize: 64 / 32\n });\n function exchangeLR(offset, mask) {\n var t = (this._lBlock >>> offset ^ this._rBlock) & mask;\n this._rBlock ^= t;\n this._lBlock ^= t << offset;\n }\n function exchangeRL(offset, mask) {\n var t = (this._rBlock >>> offset ^ this._lBlock) & mask;\n this._lBlock ^= t;\n this._rBlock ^= t << offset;\n }\n C.DES = BlockCipher._createHelper(DES);\n var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n _doReset: function() {\n var key = this._key;\n var keyWords = key.words;\n if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n throw new Error(\"Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.\");\n }\n var key1 = keyWords.slice(0, 2);\n var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n this._des1 = DES.createEncryptor(WordArray.create(key1));\n this._des2 = DES.createEncryptor(WordArray.create(key2));\n this._des3 = DES.createEncryptor(WordArray.create(key3));\n },\n encryptBlock: function(M, offset) {\n this._des1.encryptBlock(M, offset);\n this._des2.decryptBlock(M, offset);\n this._des3.encryptBlock(M, offset);\n },\n decryptBlock: function(M, offset) {\n this._des3.decryptBlock(M, offset);\n this._des2.encryptBlock(M, offset);\n this._des1.decryptBlock(M, offset);\n },\n keySize: 192 / 32,\n ivSize: 64 / 32,\n blockSize: 64 / 32\n });\n C.TripleDES = BlockCipher._createHelper(TripleDES);\n })();\n return CryptoJS2.TripleDES;\n });\n })(tripledes$1);\n return tripledes$1.exports;\n}\nvar rc4$1 = { exports: {} };\nvar rc4 = rc4$1.exports;\nvar hasRequiredRc4;\nfunction requireRc4() {\n if (hasRequiredRc4) return rc4$1.exports;\n hasRequiredRc4 = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEncBase64(), requireMd5(), requireEvpkdf(), requireCipherCore());\n }\n })(rc4, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n var RC4 = C_algo.RC4 = StreamCipher.extend({\n _doReset: function() {\n var key = this._key;\n var keyWords = key.words;\n var keySigBytes = key.sigBytes;\n var S = this._S = [];\n for (var i = 0; i < 256; i++) {\n S[i] = i;\n }\n for (var i = 0, j = 0; i < 256; i++) {\n var keyByteIndex = i % keySigBytes;\n var keyByte = keyWords[keyByteIndex >>> 2] >>> 24 - keyByteIndex % 4 * 8 & 255;\n j = (j + S[i] + keyByte) % 256;\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n }\n this._i = this._j = 0;\n },\n _doProcessBlock: function(M, offset) {\n M[offset] ^= generateKeystreamWord.call(this);\n },\n keySize: 256 / 32,\n ivSize: 0\n });\n function generateKeystreamWord() {\n var S = this._S;\n var i = this._i;\n var j = this._j;\n var keystreamWord = 0;\n for (var n = 0; n < 4; n++) {\n i = (i + 1) % 256;\n j = (j + S[i]) % 256;\n var t = S[i];\n S[i] = S[j];\n S[j] = t;\n keystreamWord |= S[(S[i] + S[j]) % 256] << 24 - n * 8;\n }\n this._i = i;\n this._j = j;\n return keystreamWord;\n }\n C.RC4 = StreamCipher._createHelper(RC4);\n var RC4Drop = C_algo.RC4Drop = RC4.extend({\n /**\n * Configuration options.\n *\n * @property {number} drop The number of keystream words to drop. Default 192\n */\n cfg: RC4.cfg.extend({\n drop: 192\n }),\n _doReset: function() {\n RC4._doReset.call(this);\n for (var i = this.cfg.drop; i > 0; i--) {\n generateKeystreamWord.call(this);\n }\n }\n });\n C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n })();\n return CryptoJS2.RC4;\n });\n })(rc4$1);\n return rc4$1.exports;\n}\nvar rabbit$1 = { exports: {} };\nvar rabbit = rabbit$1.exports;\nvar hasRequiredRabbit;\nfunction requireRabbit() {\n if (hasRequiredRabbit) return rabbit$1.exports;\n hasRequiredRabbit = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEncBase64(), requireMd5(), requireEvpkdf(), requireCipherCore());\n }\n })(rabbit, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n var S = [];\n var C_ = [];\n var G = [];\n var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n _doReset: function() {\n var K = this._key.words;\n var iv = this.cfg.iv;\n for (var i = 0; i < 4; i++) {\n K[i] = (K[i] << 8 | K[i] >>> 24) & 16711935 | (K[i] << 24 | K[i] >>> 8) & 4278255360;\n }\n var X = this._X = [\n K[0],\n K[3] << 16 | K[2] >>> 16,\n K[1],\n K[0] << 16 | K[3] >>> 16,\n K[2],\n K[1] << 16 | K[0] >>> 16,\n K[3],\n K[2] << 16 | K[1] >>> 16\n ];\n var C2 = this._C = [\n K[2] << 16 | K[2] >>> 16,\n K[0] & 4294901760 | K[1] & 65535,\n K[3] << 16 | K[3] >>> 16,\n K[1] & 4294901760 | K[2] & 65535,\n K[0] << 16 | K[0] >>> 16,\n K[2] & 4294901760 | K[3] & 65535,\n K[1] << 16 | K[1] >>> 16,\n K[3] & 4294901760 | K[0] & 65535\n ];\n this._b = 0;\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n for (var i = 0; i < 8; i++) {\n C2[i] ^= X[i + 4 & 7];\n }\n if (iv) {\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1];\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360;\n var i1 = i0 >>> 16 | i2 & 4294901760;\n var i3 = i2 << 16 | i0 & 65535;\n C2[0] ^= i0;\n C2[1] ^= i1;\n C2[2] ^= i2;\n C2[3] ^= i3;\n C2[4] ^= i0;\n C2[5] ^= i1;\n C2[6] ^= i2;\n C2[7] ^= i3;\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n _doProcessBlock: function(M, offset) {\n var X = this._X;\n nextState.call(this);\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n for (var i = 0; i < 4; i++) {\n S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360;\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 128 / 32,\n ivSize: 64 / 32\n });\n function nextState() {\n var X = this._X;\n var C2 = this._C;\n for (var i = 0; i < 8; i++) {\n C_[i] = C2[i];\n }\n C2[0] = C2[0] + 1295307597 + this._b | 0;\n C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C2[i];\n var ga = gx & 65535;\n var gb = gx >>> 16;\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0);\n G[i] = gh ^ gl;\n }\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n C.Rabbit = StreamCipher._createHelper(Rabbit);\n })();\n return CryptoJS2.Rabbit;\n });\n })(rabbit$1);\n return rabbit$1.exports;\n}\nvar rabbitLegacy$1 = { exports: {} };\nvar rabbitLegacy = rabbitLegacy$1.exports;\nvar hasRequiredRabbitLegacy;\nfunction requireRabbitLegacy() {\n if (hasRequiredRabbitLegacy) return rabbitLegacy$1.exports;\n hasRequiredRabbitLegacy = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEncBase64(), requireMd5(), requireEvpkdf(), requireCipherCore());\n }\n })(rabbitLegacy, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var StreamCipher = C_lib.StreamCipher;\n var C_algo = C.algo;\n var S = [];\n var C_ = [];\n var G = [];\n var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n _doReset: function() {\n var K = this._key.words;\n var iv = this.cfg.iv;\n var X = this._X = [\n K[0],\n K[3] << 16 | K[2] >>> 16,\n K[1],\n K[0] << 16 | K[3] >>> 16,\n K[2],\n K[1] << 16 | K[0] >>> 16,\n K[3],\n K[2] << 16 | K[1] >>> 16\n ];\n var C2 = this._C = [\n K[2] << 16 | K[2] >>> 16,\n K[0] & 4294901760 | K[1] & 65535,\n K[3] << 16 | K[3] >>> 16,\n K[1] & 4294901760 | K[2] & 65535,\n K[0] << 16 | K[0] >>> 16,\n K[2] & 4294901760 | K[3] & 65535,\n K[1] << 16 | K[1] >>> 16,\n K[3] & 4294901760 | K[0] & 65535\n ];\n this._b = 0;\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n for (var i = 0; i < 8; i++) {\n C2[i] ^= X[i + 4 & 7];\n }\n if (iv) {\n var IV = iv.words;\n var IV_0 = IV[0];\n var IV_1 = IV[1];\n var i0 = (IV_0 << 8 | IV_0 >>> 24) & 16711935 | (IV_0 << 24 | IV_0 >>> 8) & 4278255360;\n var i2 = (IV_1 << 8 | IV_1 >>> 24) & 16711935 | (IV_1 << 24 | IV_1 >>> 8) & 4278255360;\n var i1 = i0 >>> 16 | i2 & 4294901760;\n var i3 = i2 << 16 | i0 & 65535;\n C2[0] ^= i0;\n C2[1] ^= i1;\n C2[2] ^= i2;\n C2[3] ^= i3;\n C2[4] ^= i0;\n C2[5] ^= i1;\n C2[6] ^= i2;\n C2[7] ^= i3;\n for (var i = 0; i < 4; i++) {\n nextState.call(this);\n }\n }\n },\n _doProcessBlock: function(M, offset) {\n var X = this._X;\n nextState.call(this);\n S[0] = X[0] ^ X[5] >>> 16 ^ X[3] << 16;\n S[1] = X[2] ^ X[7] >>> 16 ^ X[5] << 16;\n S[2] = X[4] ^ X[1] >>> 16 ^ X[7] << 16;\n S[3] = X[6] ^ X[3] >>> 16 ^ X[1] << 16;\n for (var i = 0; i < 4; i++) {\n S[i] = (S[i] << 8 | S[i] >>> 24) & 16711935 | (S[i] << 24 | S[i] >>> 8) & 4278255360;\n M[offset + i] ^= S[i];\n }\n },\n blockSize: 128 / 32,\n ivSize: 64 / 32\n });\n function nextState() {\n var X = this._X;\n var C2 = this._C;\n for (var i = 0; i < 8; i++) {\n C_[i] = C2[i];\n }\n C2[0] = C2[0] + 1295307597 + this._b | 0;\n C2[1] = C2[1] + 3545052371 + (C2[0] >>> 0 < C_[0] >>> 0 ? 1 : 0) | 0;\n C2[2] = C2[2] + 886263092 + (C2[1] >>> 0 < C_[1] >>> 0 ? 1 : 0) | 0;\n C2[3] = C2[3] + 1295307597 + (C2[2] >>> 0 < C_[2] >>> 0 ? 1 : 0) | 0;\n C2[4] = C2[4] + 3545052371 + (C2[3] >>> 0 < C_[3] >>> 0 ? 1 : 0) | 0;\n C2[5] = C2[5] + 886263092 + (C2[4] >>> 0 < C_[4] >>> 0 ? 1 : 0) | 0;\n C2[6] = C2[6] + 1295307597 + (C2[5] >>> 0 < C_[5] >>> 0 ? 1 : 0) | 0;\n C2[7] = C2[7] + 3545052371 + (C2[6] >>> 0 < C_[6] >>> 0 ? 1 : 0) | 0;\n this._b = C2[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;\n for (var i = 0; i < 8; i++) {\n var gx = X[i] + C2[i];\n var ga = gx & 65535;\n var gb = gx >>> 16;\n var gh = ((ga * ga >>> 17) + ga * gb >>> 15) + gb * gb;\n var gl = ((gx & 4294901760) * gx | 0) + ((gx & 65535) * gx | 0);\n G[i] = gh ^ gl;\n }\n X[0] = G[0] + (G[7] << 16 | G[7] >>> 16) + (G[6] << 16 | G[6] >>> 16) | 0;\n X[1] = G[1] + (G[0] << 8 | G[0] >>> 24) + G[7] | 0;\n X[2] = G[2] + (G[1] << 16 | G[1] >>> 16) + (G[0] << 16 | G[0] >>> 16) | 0;\n X[3] = G[3] + (G[2] << 8 | G[2] >>> 24) + G[1] | 0;\n X[4] = G[4] + (G[3] << 16 | G[3] >>> 16) + (G[2] << 16 | G[2] >>> 16) | 0;\n X[5] = G[5] + (G[4] << 8 | G[4] >>> 24) + G[3] | 0;\n X[6] = G[6] + (G[5] << 16 | G[5] >>> 16) + (G[4] << 16 | G[4] >>> 16) | 0;\n X[7] = G[7] + (G[6] << 8 | G[6] >>> 24) + G[5] | 0;\n }\n C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n })();\n return CryptoJS2.RabbitLegacy;\n });\n })(rabbitLegacy$1);\n return rabbitLegacy$1.exports;\n}\nvar blowfish$1 = { exports: {} };\nvar blowfish = blowfish$1.exports;\nvar hasRequiredBlowfish;\nfunction requireBlowfish() {\n if (hasRequiredBlowfish) return blowfish$1.exports;\n hasRequiredBlowfish = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireEncBase64(), requireMd5(), requireEvpkdf(), requireCipherCore());\n }\n })(blowfish, function(CryptoJS2) {\n (function() {\n var C = CryptoJS2;\n var C_lib = C.lib;\n var BlockCipher = C_lib.BlockCipher;\n var C_algo = C.algo;\n const N = 16;\n const ORIG_P = [\n 608135816,\n 2242054355,\n 320440878,\n 57701188,\n 2752067618,\n 698298832,\n 137296536,\n 3964562569,\n 1160258022,\n 953160567,\n 3193202383,\n 887688300,\n 3232508343,\n 3380367581,\n 1065670069,\n 3041331479,\n 2450970073,\n 2306472731\n ];\n const ORIG_S = [\n [\n 3509652390,\n 2564797868,\n 805139163,\n 3491422135,\n 3101798381,\n 1780907670,\n 3128725573,\n 4046225305,\n 614570311,\n 3012652279,\n 134345442,\n 2240740374,\n 1667834072,\n 1901547113,\n 2757295779,\n 4103290238,\n 227898511,\n 1921955416,\n 1904987480,\n 2182433518,\n 2069144605,\n 3260701109,\n 2620446009,\n 720527379,\n 3318853667,\n 677414384,\n 3393288472,\n 3101374703,\n 2390351024,\n 1614419982,\n 1822297739,\n 2954791486,\n 3608508353,\n 3174124327,\n 2024746970,\n 1432378464,\n 3864339955,\n 2857741204,\n 1464375394,\n 1676153920,\n 1439316330,\n 715854006,\n 3033291828,\n 289532110,\n 2706671279,\n 2087905683,\n 3018724369,\n 1668267050,\n 732546397,\n 1947742710,\n 3462151702,\n 2609353502,\n 2950085171,\n 1814351708,\n 2050118529,\n 680887927,\n 999245976,\n 1800124847,\n 3300911131,\n 1713906067,\n 1641548236,\n 4213287313,\n 1216130144,\n 1575780402,\n 4018429277,\n 3917837745,\n 3693486850,\n 3949271944,\n 596196993,\n 3549867205,\n 258830323,\n 2213823033,\n 772490370,\n 2760122372,\n 1774776394,\n 2652871518,\n 566650946,\n 4142492826,\n 1728879713,\n 2882767088,\n 1783734482,\n 3629395816,\n 2517608232,\n 2874225571,\n 1861159788,\n 326777828,\n 3124490320,\n 2130389656,\n 2716951837,\n 967770486,\n 1724537150,\n 2185432712,\n 2364442137,\n 1164943284,\n 2105845187,\n 998989502,\n 3765401048,\n 2244026483,\n 1075463327,\n 1455516326,\n 1322494562,\n 910128902,\n 469688178,\n 1117454909,\n 936433444,\n 3490320968,\n 3675253459,\n 1240580251,\n 122909385,\n 2157517691,\n 634681816,\n 4142456567,\n 3825094682,\n 3061402683,\n 2540495037,\n 79693498,\n 3249098678,\n 1084186820,\n 1583128258,\n 426386531,\n 1761308591,\n 1047286709,\n 322548459,\n 995290223,\n 1845252383,\n 2603652396,\n 3431023940,\n 2942221577,\n 3202600964,\n 3727903485,\n 1712269319,\n 422464435,\n 3234572375,\n 1170764815,\n 3523960633,\n 3117677531,\n 1434042557,\n 442511882,\n 3600875718,\n 1076654713,\n 1738483198,\n 4213154764,\n 2393238008,\n 3677496056,\n 1014306527,\n 4251020053,\n 793779912,\n 2902807211,\n 842905082,\n 4246964064,\n 1395751752,\n 1040244610,\n 2656851899,\n 3396308128,\n 445077038,\n 3742853595,\n 3577915638,\n 679411651,\n 2892444358,\n 2354009459,\n 1767581616,\n 3150600392,\n 3791627101,\n 3102740896,\n 284835224,\n 4246832056,\n 1258075500,\n 768725851,\n 2589189241,\n 3069724005,\n 3532540348,\n 1274779536,\n 3789419226,\n 2764799539,\n 1660621633,\n 3471099624,\n 4011903706,\n 913787905,\n 3497959166,\n 737222580,\n 2514213453,\n 2928710040,\n 3937242737,\n 1804850592,\n 3499020752,\n 2949064160,\n 2386320175,\n 2390070455,\n 2415321851,\n 4061277028,\n 2290661394,\n 2416832540,\n 1336762016,\n 1754252060,\n 3520065937,\n 3014181293,\n 791618072,\n 3188594551,\n 3933548030,\n 2332172193,\n 3852520463,\n 3043980520,\n 413987798,\n 3465142937,\n 3030929376,\n 4245938359,\n 2093235073,\n 3534596313,\n 375366246,\n 2157278981,\n 2479649556,\n 555357303,\n 3870105701,\n 2008414854,\n 3344188149,\n 4221384143,\n 3956125452,\n 2067696032,\n 3594591187,\n 2921233993,\n 2428461,\n 544322398,\n 577241275,\n 1471733935,\n 610547355,\n 4027169054,\n 1432588573,\n 1507829418,\n 2025931657,\n 3646575487,\n 545086370,\n 48609733,\n 2200306550,\n 1653985193,\n 298326376,\n 1316178497,\n 3007786442,\n 2064951626,\n 458293330,\n 2589141269,\n 3591329599,\n 3164325604,\n 727753846,\n 2179363840,\n 146436021,\n 1461446943,\n 4069977195,\n 705550613,\n 3059967265,\n 3887724982,\n 4281599278,\n 3313849956,\n 1404054877,\n 2845806497,\n 146425753,\n 1854211946\n ],\n [\n 1266315497,\n 3048417604,\n 3681880366,\n 3289982499,\n 290971e4,\n 1235738493,\n 2632868024,\n 2414719590,\n 3970600049,\n 1771706367,\n 1449415276,\n 3266420449,\n 422970021,\n 1963543593,\n 2690192192,\n 3826793022,\n 1062508698,\n 1531092325,\n 1804592342,\n 2583117782,\n 2714934279,\n 4024971509,\n 1294809318,\n 4028980673,\n 1289560198,\n 2221992742,\n 1669523910,\n 35572830,\n 157838143,\n 1052438473,\n 1016535060,\n 1802137761,\n 1753167236,\n 1386275462,\n 3080475397,\n 2857371447,\n 1040679964,\n 2145300060,\n 2390574316,\n 1461121720,\n 2956646967,\n 4031777805,\n 4028374788,\n 33600511,\n 2920084762,\n 1018524850,\n 629373528,\n 3691585981,\n 3515945977,\n 2091462646,\n 2486323059,\n 586499841,\n 988145025,\n 935516892,\n 3367335476,\n 2599673255,\n 2839830854,\n 265290510,\n 3972581182,\n 2759138881,\n 3795373465,\n 1005194799,\n 847297441,\n 406762289,\n 1314163512,\n 1332590856,\n 1866599683,\n 4127851711,\n 750260880,\n 613907577,\n 1450815602,\n 3165620655,\n 3734664991,\n 3650291728,\n 3012275730,\n 3704569646,\n 1427272223,\n 778793252,\n 1343938022,\n 2676280711,\n 2052605720,\n 1946737175,\n 3164576444,\n 3914038668,\n 3967478842,\n 3682934266,\n 1661551462,\n 3294938066,\n 4011595847,\n 840292616,\n 3712170807,\n 616741398,\n 312560963,\n 711312465,\n 1351876610,\n 322626781,\n 1910503582,\n 271666773,\n 2175563734,\n 1594956187,\n 70604529,\n 3617834859,\n 1007753275,\n 1495573769,\n 4069517037,\n 2549218298,\n 2663038764,\n 504708206,\n 2263041392,\n 3941167025,\n 2249088522,\n 1514023603,\n 1998579484,\n 1312622330,\n 694541497,\n 2582060303,\n 2151582166,\n 1382467621,\n 776784248,\n 2618340202,\n 3323268794,\n 2497899128,\n 2784771155,\n 503983604,\n 4076293799,\n 907881277,\n 423175695,\n 432175456,\n 1378068232,\n 4145222326,\n 3954048622,\n 3938656102,\n 3820766613,\n 2793130115,\n 2977904593,\n 26017576,\n 3274890735,\n 3194772133,\n 1700274565,\n 1756076034,\n 4006520079,\n 3677328699,\n 720338349,\n 1533947780,\n 354530856,\n 688349552,\n 3973924725,\n 1637815568,\n 332179504,\n 3949051286,\n 53804574,\n 2852348879,\n 3044236432,\n 1282449977,\n 3583942155,\n 3416972820,\n 4006381244,\n 1617046695,\n 2628476075,\n 3002303598,\n 1686838959,\n 431878346,\n 2686675385,\n 1700445008,\n 1080580658,\n 1009431731,\n 832498133,\n 3223435511,\n 2605976345,\n 2271191193,\n 2516031870,\n 1648197032,\n 4164389018,\n 2548247927,\n 300782431,\n 375919233,\n 238389289,\n 3353747414,\n 2531188641,\n 2019080857,\n 1475708069,\n 455242339,\n 2609103871,\n 448939670,\n 3451063019,\n 1395535956,\n 2413381860,\n 1841049896,\n 1491858159,\n 885456874,\n 4264095073,\n 4001119347,\n 1565136089,\n 3898914787,\n 1108368660,\n 540939232,\n 1173283510,\n 2745871338,\n 3681308437,\n 4207628240,\n 3343053890,\n 4016749493,\n 1699691293,\n 1103962373,\n 3625875870,\n 2256883143,\n 3830138730,\n 1031889488,\n 3479347698,\n 1535977030,\n 4236805024,\n 3251091107,\n 2132092099,\n 1774941330,\n 1199868427,\n 1452454533,\n 157007616,\n 2904115357,\n 342012276,\n 595725824,\n 1480756522,\n 206960106,\n 497939518,\n 591360097,\n 863170706,\n 2375253569,\n 3596610801,\n 1814182875,\n 2094937945,\n 3421402208,\n 1082520231,\n 3463918190,\n 2785509508,\n 435703966,\n 3908032597,\n 1641649973,\n 2842273706,\n 3305899714,\n 1510255612,\n 2148256476,\n 2655287854,\n 3276092548,\n 4258621189,\n 236887753,\n 3681803219,\n 274041037,\n 1734335097,\n 3815195456,\n 3317970021,\n 1899903192,\n 1026095262,\n 4050517792,\n 356393447,\n 2410691914,\n 3873677099,\n 3682840055\n ],\n [\n 3913112168,\n 2491498743,\n 4132185628,\n 2489919796,\n 1091903735,\n 1979897079,\n 3170134830,\n 3567386728,\n 3557303409,\n 857797738,\n 1136121015,\n 1342202287,\n 507115054,\n 2535736646,\n 337727348,\n 3213592640,\n 1301675037,\n 2528481711,\n 1895095763,\n 1721773893,\n 3216771564,\n 62756741,\n 2142006736,\n 835421444,\n 2531993523,\n 1442658625,\n 3659876326,\n 2882144922,\n 676362277,\n 1392781812,\n 170690266,\n 3921047035,\n 1759253602,\n 3611846912,\n 1745797284,\n 664899054,\n 1329594018,\n 3901205900,\n 3045908486,\n 2062866102,\n 2865634940,\n 3543621612,\n 3464012697,\n 1080764994,\n 553557557,\n 3656615353,\n 3996768171,\n 991055499,\n 499776247,\n 1265440854,\n 648242737,\n 3940784050,\n 980351604,\n 3713745714,\n 1749149687,\n 3396870395,\n 4211799374,\n 3640570775,\n 1161844396,\n 3125318951,\n 1431517754,\n 545492359,\n 4268468663,\n 3499529547,\n 1437099964,\n 2702547544,\n 3433638243,\n 2581715763,\n 2787789398,\n 1060185593,\n 1593081372,\n 2418618748,\n 4260947970,\n 69676912,\n 2159744348,\n 86519011,\n 2512459080,\n 3838209314,\n 1220612927,\n 3339683548,\n 133810670,\n 1090789135,\n 1078426020,\n 1569222167,\n 845107691,\n 3583754449,\n 4072456591,\n 1091646820,\n 628848692,\n 1613405280,\n 3757631651,\n 526609435,\n 236106946,\n 48312990,\n 2942717905,\n 3402727701,\n 1797494240,\n 859738849,\n 992217954,\n 4005476642,\n 2243076622,\n 3870952857,\n 3732016268,\n 765654824,\n 3490871365,\n 2511836413,\n 1685915746,\n 3888969200,\n 1414112111,\n 2273134842,\n 3281911079,\n 4080962846,\n 172450625,\n 2569994100,\n 980381355,\n 4109958455,\n 2819808352,\n 2716589560,\n 2568741196,\n 3681446669,\n 3329971472,\n 1835478071,\n 660984891,\n 3704678404,\n 4045999559,\n 3422617507,\n 3040415634,\n 1762651403,\n 1719377915,\n 3470491036,\n 2693910283,\n 3642056355,\n 3138596744,\n 1364962596,\n 2073328063,\n 1983633131,\n 926494387,\n 3423689081,\n 2150032023,\n 4096667949,\n 1749200295,\n 3328846651,\n 309677260,\n 2016342300,\n 1779581495,\n 3079819751,\n 111262694,\n 1274766160,\n 443224088,\n 298511866,\n 1025883608,\n 3806446537,\n 1145181785,\n 168956806,\n 3641502830,\n 3584813610,\n 1689216846,\n 3666258015,\n 3200248200,\n 1692713982,\n 2646376535,\n 4042768518,\n 1618508792,\n 1610833997,\n 3523052358,\n 4130873264,\n 2001055236,\n 3610705100,\n 2202168115,\n 4028541809,\n 2961195399,\n 1006657119,\n 2006996926,\n 3186142756,\n 1430667929,\n 3210227297,\n 1314452623,\n 4074634658,\n 4101304120,\n 2273951170,\n 1399257539,\n 3367210612,\n 3027628629,\n 1190975929,\n 2062231137,\n 2333990788,\n 2221543033,\n 2438960610,\n 1181637006,\n 548689776,\n 2362791313,\n 3372408396,\n 3104550113,\n 3145860560,\n 296247880,\n 1970579870,\n 3078560182,\n 3769228297,\n 1714227617,\n 3291629107,\n 3898220290,\n 166772364,\n 1251581989,\n 493813264,\n 448347421,\n 195405023,\n 2709975567,\n 677966185,\n 3703036547,\n 1463355134,\n 2715995803,\n 1338867538,\n 1343315457,\n 2802222074,\n 2684532164,\n 233230375,\n 2599980071,\n 2000651841,\n 3277868038,\n 1638401717,\n 4028070440,\n 3237316320,\n 6314154,\n 819756386,\n 300326615,\n 590932579,\n 1405279636,\n 3267499572,\n 3150704214,\n 2428286686,\n 3959192993,\n 3461946742,\n 1862657033,\n 1266418056,\n 963775037,\n 2089974820,\n 2263052895,\n 1917689273,\n 448879540,\n 3550394620,\n 3981727096,\n 150775221,\n 3627908307,\n 1303187396,\n 508620638,\n 2975983352,\n 2726630617,\n 1817252668,\n 1876281319,\n 1457606340,\n 908771278,\n 3720792119,\n 3617206836,\n 2455994898,\n 1729034894,\n 1080033504\n ],\n [\n 976866871,\n 3556439503,\n 2881648439,\n 1522871579,\n 1555064734,\n 1336096578,\n 3548522304,\n 2579274686,\n 3574697629,\n 3205460757,\n 3593280638,\n 3338716283,\n 3079412587,\n 564236357,\n 2993598910,\n 1781952180,\n 1464380207,\n 3163844217,\n 3332601554,\n 1699332808,\n 1393555694,\n 1183702653,\n 3581086237,\n 1288719814,\n 691649499,\n 2847557200,\n 2895455976,\n 3193889540,\n 2717570544,\n 1781354906,\n 1676643554,\n 2592534050,\n 3230253752,\n 1126444790,\n 2770207658,\n 2633158820,\n 2210423226,\n 2615765581,\n 2414155088,\n 3127139286,\n 673620729,\n 2805611233,\n 1269405062,\n 4015350505,\n 3341807571,\n 4149409754,\n 1057255273,\n 2012875353,\n 2162469141,\n 2276492801,\n 2601117357,\n 993977747,\n 3918593370,\n 2654263191,\n 753973209,\n 36408145,\n 2530585658,\n 25011837,\n 3520020182,\n 2088578344,\n 530523599,\n 2918365339,\n 1524020338,\n 1518925132,\n 3760827505,\n 3759777254,\n 1202760957,\n 3985898139,\n 3906192525,\n 674977740,\n 4174734889,\n 2031300136,\n 2019492241,\n 3983892565,\n 4153806404,\n 3822280332,\n 352677332,\n 2297720250,\n 60907813,\n 90501309,\n 3286998549,\n 1016092578,\n 2535922412,\n 2839152426,\n 457141659,\n 509813237,\n 4120667899,\n 652014361,\n 1966332200,\n 2975202805,\n 55981186,\n 2327461051,\n 676427537,\n 3255491064,\n 2882294119,\n 3433927263,\n 1307055953,\n 942726286,\n 933058658,\n 2468411793,\n 3933900994,\n 4215176142,\n 1361170020,\n 2001714738,\n 2830558078,\n 3274259782,\n 1222529897,\n 1679025792,\n 2729314320,\n 3714953764,\n 1770335741,\n 151462246,\n 3013232138,\n 1682292957,\n 1483529935,\n 471910574,\n 1539241949,\n 458788160,\n 3436315007,\n 1807016891,\n 3718408830,\n 978976581,\n 1043663428,\n 3165965781,\n 1927990952,\n 4200891579,\n 2372276910,\n 3208408903,\n 3533431907,\n 1412390302,\n 2931980059,\n 4132332400,\n 1947078029,\n 3881505623,\n 4168226417,\n 2941484381,\n 1077988104,\n 1320477388,\n 886195818,\n 18198404,\n 3786409e3,\n 2509781533,\n 112762804,\n 3463356488,\n 1866414978,\n 891333506,\n 18488651,\n 661792760,\n 1628790961,\n 3885187036,\n 3141171499,\n 876946877,\n 2693282273,\n 1372485963,\n 791857591,\n 2686433993,\n 3759982718,\n 3167212022,\n 3472953795,\n 2716379847,\n 445679433,\n 3561995674,\n 3504004811,\n 3574258232,\n 54117162,\n 3331405415,\n 2381918588,\n 3769707343,\n 4154350007,\n 1140177722,\n 4074052095,\n 668550556,\n 3214352940,\n 367459370,\n 261225585,\n 2610173221,\n 4209349473,\n 3468074219,\n 3265815641,\n 314222801,\n 3066103646,\n 3808782860,\n 282218597,\n 3406013506,\n 3773591054,\n 379116347,\n 1285071038,\n 846784868,\n 2669647154,\n 3771962079,\n 3550491691,\n 2305946142,\n 453669953,\n 1268987020,\n 3317592352,\n 3279303384,\n 3744833421,\n 2610507566,\n 3859509063,\n 266596637,\n 3847019092,\n 517658769,\n 3462560207,\n 3443424879,\n 370717030,\n 4247526661,\n 2224018117,\n 4143653529,\n 4112773975,\n 2788324899,\n 2477274417,\n 1456262402,\n 2901442914,\n 1517677493,\n 1846949527,\n 2295493580,\n 3734397586,\n 2176403920,\n 1280348187,\n 1908823572,\n 3871786941,\n 846861322,\n 1172426758,\n 3287448474,\n 3383383037,\n 1655181056,\n 3139813346,\n 901632758,\n 1897031941,\n 2986607138,\n 3066810236,\n 3447102507,\n 1393639104,\n 373351379,\n 950779232,\n 625454576,\n 3124240540,\n 4148612726,\n 2007998917,\n 544563296,\n 2244738638,\n 2330496472,\n 2058025392,\n 1291430526,\n 424198748,\n 50039436,\n 29584100,\n 3605783033,\n 2429876329,\n 2791104160,\n 1057563949,\n 3255363231,\n 3075367218,\n 3463963227,\n 1469046755,\n 985887462\n ]\n ];\n var BLOWFISH_CTX = {\n pbox: [],\n sbox: []\n };\n function F(ctx, x) {\n let a = x >> 24 & 255;\n let b = x >> 16 & 255;\n let c = x >> 8 & 255;\n let d = x & 255;\n let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n y = y ^ ctx.sbox[2][c];\n y = y + ctx.sbox[3][d];\n return y;\n }\n function BlowFish_Encrypt(ctx, left, right) {\n let Xl = left;\n let Xr = right;\n let temp;\n for (let i = 0; i < N; ++i) {\n Xl = Xl ^ ctx.pbox[i];\n Xr = F(ctx, Xl) ^ Xr;\n temp = Xl;\n Xl = Xr;\n Xr = temp;\n }\n temp = Xl;\n Xl = Xr;\n Xr = temp;\n Xr = Xr ^ ctx.pbox[N];\n Xl = Xl ^ ctx.pbox[N + 1];\n return { left: Xl, right: Xr };\n }\n function BlowFish_Decrypt(ctx, left, right) {\n let Xl = left;\n let Xr = right;\n let temp;\n for (let i = N + 1; i > 1; --i) {\n Xl = Xl ^ ctx.pbox[i];\n Xr = F(ctx, Xl) ^ Xr;\n temp = Xl;\n Xl = Xr;\n Xr = temp;\n }\n temp = Xl;\n Xl = Xr;\n Xr = temp;\n Xr = Xr ^ ctx.pbox[1];\n Xl = Xl ^ ctx.pbox[0];\n return { left: Xl, right: Xr };\n }\n function BlowFishInit(ctx, key, keysize) {\n for (let Row = 0; Row < 4; Row++) {\n ctx.sbox[Row] = [];\n for (let Col = 0; Col < 256; Col++) {\n ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n }\n }\n let keyIndex = 0;\n for (let index = 0; index < N + 2; index++) {\n ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n keyIndex++;\n if (keyIndex >= keysize) {\n keyIndex = 0;\n }\n }\n let Data1 = 0;\n let Data2 = 0;\n let res = 0;\n for (let i = 0; i < N + 2; i += 2) {\n res = BlowFish_Encrypt(ctx, Data1, Data2);\n Data1 = res.left;\n Data2 = res.right;\n ctx.pbox[i] = Data1;\n ctx.pbox[i + 1] = Data2;\n }\n for (let i = 0; i < 4; i++) {\n for (let j = 0; j < 256; j += 2) {\n res = BlowFish_Encrypt(ctx, Data1, Data2);\n Data1 = res.left;\n Data2 = res.right;\n ctx.sbox[i][j] = Data1;\n ctx.sbox[i][j + 1] = Data2;\n }\n }\n return true;\n }\n var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n _doReset: function() {\n if (this._keyPriorReset === this._key) {\n return;\n }\n var key = this._keyPriorReset = this._key;\n var keyWords = key.words;\n var keySize = key.sigBytes / 4;\n BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n },\n encryptBlock: function(M, offset) {\n var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n M[offset] = res.left;\n M[offset + 1] = res.right;\n },\n decryptBlock: function(M, offset) {\n var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n M[offset] = res.left;\n M[offset + 1] = res.right;\n },\n blockSize: 64 / 32,\n keySize: 128 / 32,\n ivSize: 64 / 32\n });\n C.Blowfish = BlockCipher._createHelper(Blowfish);\n })();\n return CryptoJS2.Blowfish;\n });\n })(blowfish$1);\n return blowfish$1.exports;\n}\nvar cryptoJs = cryptoJs$1.exports;\nvar hasRequiredCryptoJs;\nfunction requireCryptoJs() {\n if (hasRequiredCryptoJs) return cryptoJs$1.exports;\n hasRequiredCryptoJs = 1;\n (function(module, exports) {\n (function(root, factory, undef) {\n {\n module.exports = factory(requireCore(), requireX64Core(), requireLibTypedarrays(), requireEncUtf16(), requireEncBase64(), requireEncBase64url(), requireMd5(), requireSha1(), requireSha256(), requireSha224(), requireSha512(), requireSha384(), requireSha3(), requireRipemd160(), requireHmac(), requirePbkdf2(), requireEvpkdf(), requireCipherCore(), requireModeCfb(), requireModeCtr(), requireModeCtrGladman(), requireModeOfb(), requireModeEcb(), requirePadAnsix923(), requirePadIso10126(), requirePadIso97971(), requirePadZeropadding(), requirePadNopadding(), requireFormatHex(), requireAes(), requireTripledes(), requireRc4(), requireRabbit(), requireRabbitLegacy(), requireBlowfish());\n }\n })(cryptoJs, function(CryptoJS2) {\n return CryptoJS2;\n });\n })(cryptoJs$1);\n return cryptoJs$1.exports;\n}\nvar cryptoJsExports = requireCryptoJs();\nconst CryptoJS = /* @__PURE__ */ getDefaultExportFromCjs(cryptoJsExports);\nfunction generateRandomString(length = 32) {\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let result = \"\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\nfunction generateAesKey() {\n return CryptoJS.enc.Utf8.parse(generateRandomString());\n}\nfunction encryptBase64(str) {\n return CryptoJS.enc.Base64.stringify(str);\n}\nfunction decryptBase64(str) {\n return CryptoJS.enc.Base64.parse(str).toString(CryptoJS.enc.Utf8);\n}\nfunction encryptWithAes(message, aesKey, iv, mode = CryptoJS.mode.ECB, padding = CryptoJS.pad.Pkcs7) {\n const encrypted = CryptoJS.AES.encrypt(message, aesKey, {\n iv,\n mode,\n padding\n });\n return encrypted.toString();\n}\nfunction MD5(message, cfg) {\n return CryptoJS.MD5(message, cfg).toString();\n}\nfunction easyDownload(res, name) {\n const navigator2 = window.navigator;\n if (navigator2 && navigator2.msSaveOrOpenBlob) {\n navigator2.msSaveOrOpenBlob(res, name);\n } else {\n const aTag = document.createElement(\"a\");\n aTag.target = \"_blank\";\n aTag.download = name;\n aTag.href = typeof res === \"string\" ? res : window.URL.createObjectURL(res);\n document.body.appendChild(aTag);\n aTag.click();\n setTimeout(() => {\n document.body.removeChild(aTag);\n }, 1e3);\n }\n}\nfunction cutFilename(name, num) {\n if (!name) return \"\";\n const lastIndex = name.lastIndexOf(\".\");\n const suffix = lastIndex === -1 ? \"\" : name.substring(lastIndex + 1);\n return `${name.substring(0, num - suffix.length - 1)}.${suffix}`;\n}\nfunction cutFileSuffix(name) {\n if (!name) return \"\";\n const nameSplit = name.split(\".\");\n return nameSplit[nameSplit.length - 1];\n}\nfunction isTypeByName(name, suffixs) {\n if (!name) return false;\n return suffixs.some((suffix) => `.${cutFileSuffix(name)}`.toLowerCase() === suffix.toLowerCase());\n}\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction op_and(x, y) {\n return x & y;\n}\nfunction op_or(x, y) {\n return x | y;\n}\nfunction op_xor(x, y) {\n return x ^ y;\n}\nfunction op_andnot(x, y) {\n return x & ~y;\n}\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 65535) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 255) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 15) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n } else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0;\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 1;\n } else if (k == 1) {\n ret += int2char(slop << 2 | v >> 4);\n slop = v & 15;\n k = 2;\n } else if (k == 2) {\n ret += int2char(slop);\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 3;\n } else {\n ret += int2char(slop << 2 | v >> 4);\n ret += int2char(v & 15);\n k = 0;\n }\n }\n if (k == 1) {\n ret += int2char(slop << 2);\n }\n return ret;\n}\nvar decoder$1;\nvar Hex = {\n decode: function(a) {\n var i;\n if (decoder$1 === void 0) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\t \\u2028\\u2029\";\n decoder$1 = {};\n for (i = 0; i < 16; ++i) {\n decoder$1[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder$1[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder$1[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder$1[c];\n if (c == -1) {\n continue;\n }\n if (c === void 0) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n } else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\nvar decoder;\nvar Base64 = {\n decode: function(a) {\n var i;\n if (decoder === void 0) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\t \\u2028\\u2029\";\n decoder = /* @__PURE__ */ Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder[\"-\"] = 62;\n decoder[\"_\"] = 63;\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === void 0) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = bits >> 16;\n out[out.length] = bits >> 8 & 255;\n out[out.length] = bits & 255;\n bits = 0;\n char_count = 0;\n } else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = bits >> 10;\n break;\n case 3:\n out[out.length] = bits >> 16;\n out[out.length] = bits >> 8 & 255;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function(a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n } else if (m[2]) {\n a = m[2];\n } else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\nvar max = 1e13;\nvar Int10 = (\n /** @class */\n (function() {\n function Int102(value) {\n this.buf = [+value || 0];\n }\n Int102.prototype.mulAdd = function(m, c) {\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n } else {\n c = 0 | t / max;\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int102.prototype.sub = function(c) {\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n } else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int102.prototype.toString = function(base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int102.prototype.valueOf = function() {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int102.prototype.simplify = function() {\n var b = this.buf;\n return b.length == 1 ? b[0] : this;\n };\n return Int102;\n })()\n);\nvar ellipsis = \"…\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = (\n /** @class */\n (function() {\n function Stream2(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream2) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n } else {\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream2.prototype.get = function(pos) {\n if (pos === void 0) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return \"string\" === typeof this.enc ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream2.prototype.hexByte = function(b) {\n return this.hexDigits.charAt(b >> 4 & 15) + this.hexDigits.charAt(b & 15);\n };\n Stream2.prototype.hexDump = function(start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 15) {\n case 7:\n s += \" \";\n break;\n case 15:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream2.prototype.isASCII = function(start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream2.prototype.parseStringISO = function(start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream2.prototype.parseStringUTF = function(start, end) {\n var s = \"\";\n for (var i = start; i < end; ) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n } else if (c > 191 && c < 224) {\n s += String.fromCharCode((c & 31) << 6 | this.get(i++) & 63);\n } else {\n s += String.fromCharCode((c & 15) << 12 | (this.get(i++) & 63) << 6 | this.get(i++) & 63);\n }\n }\n return s;\n };\n Stream2.prototype.parseStringBMP = function(start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end; ) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode(hi << 8 | lo);\n }\n return str;\n };\n Stream2.prototype.parseTime = function(start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shortYear ? reTimeS : reTimeL).exec(s);\n if (!m) {\n return \"Unrecognized time: \" + s;\n }\n if (shortYear) {\n m[1] = +m[1];\n m[1] += +m[1] < 70 ? 2e3 : 1900;\n }\n s = m[1] + \"-\" + m[2] + \"-\" + m[3] + \" \" + m[4];\n if (m[5]) {\n s += \":\" + m[5];\n if (m[6]) {\n s += \":\" + m[6];\n if (m[7]) {\n s += \".\" + m[7];\n }\n }\n }\n if (m[8]) {\n s += \" UTC\";\n if (m[8] != \"Z\") {\n s += m[8];\n if (m[9]) {\n s += \":\" + m[9];\n }\n }\n }\n return s;\n };\n Stream2.prototype.parseInteger = function(start, end) {\n var v = this.get(start);\n var neg = v > 127;\n var pad = neg ? 255 : 0;\n var len;\n var s = \"\";\n while (v == pad && ++start < end) {\n v = this.get(start);\n }\n len = end - start;\n if (len === 0) {\n return neg ? -1 : 0;\n }\n if (len > 4) {\n s = v;\n len <<= 3;\n while (((+s ^ pad) & 128) == 0) {\n s = +s << 1;\n --len;\n }\n s = \"(\" + len + \" bit)\\n\";\n }\n if (neg) {\n v = v - 256;\n }\n var n = new Int10(v);\n for (var i = start + 1; i < end; ++i) {\n n.mulAdd(256, this.get(i));\n }\n return s + n.toString();\n };\n Stream2.prototype.parseBitString = function(start, end, maxLength) {\n var unusedBit = this.get(start);\n var lenBit = (end - start - 1 << 3) - unusedBit;\n var intro = \"(\" + lenBit + \" bit)\\n\";\n var s = \"\";\n for (var i = start + 1; i < end; ++i) {\n var b = this.get(i);\n var skip = i == end - 1 ? unusedBit : 0;\n for (var j = 7; j >= skip; --j) {\n s += b >> j & 1 ? \"1\" : \"0\";\n }\n if (s.length > maxLength) {\n return intro + stringCut(s, maxLength);\n }\n }\n return intro + s;\n };\n Stream2.prototype.parseOctetString = function(start, end, maxLength) {\n if (this.isASCII(start, end)) {\n return stringCut(this.parseStringISO(start, end), maxLength);\n }\n var len = end - start;\n var s = \"(\" + len + \" byte)\\n\";\n maxLength /= 2;\n if (len > maxLength) {\n end = start + maxLength;\n }\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n }\n if (len > maxLength) {\n s += ellipsis;\n }\n return s;\n };\n Stream2.prototype.parseOID = function(start, end, maxLength) {\n var s = \"\";\n var n = new Int10();\n var bits = 0;\n for (var i = start; i < end; ++i) {\n var v = this.get(i);\n n.mulAdd(128, v & 127);\n bits += 7;\n if (!(v & 128)) {\n if (s === \"\") {\n n = n.simplify();\n if (n instanceof Int10) {\n n.sub(80);\n s = \"2.\" + n.toString();\n } else {\n var m = n < 80 ? n < 40 ? 0 : 1 : 2;\n s = m + \".\" + (n - m * 40);\n }\n } else {\n s += \".\" + n.toString();\n }\n if (s.length > maxLength) {\n return stringCut(s, maxLength);\n }\n n = new Int10();\n bits = 0;\n }\n }\n if (bits > 0) {\n s += \".incomplete\";\n }\n return s;\n };\n return Stream2;\n })()\n);\nvar ASN1 = (\n /** @class */\n (function() {\n function ASN12(stream, header, length, tag, sub) {\n if (!(tag instanceof ASN1Tag)) {\n throw new Error(\"Invalid tag value.\");\n }\n this.stream = stream;\n this.header = header;\n this.length = length;\n this.tag = tag;\n this.sub = sub;\n }\n ASN12.prototype.typeName = function() {\n switch (this.tag.tagClass) {\n case 0:\n switch (this.tag.tagNumber) {\n case 0:\n return \"EOC\";\n case 1:\n return \"BOOLEAN\";\n case 2:\n return \"INTEGER\";\n case 3:\n return \"BIT_STRING\";\n case 4:\n return \"OCTET_STRING\";\n case 5:\n return \"NULL\";\n case 6:\n return \"OBJECT_IDENTIFIER\";\n case 7:\n return \"ObjectDescriptor\";\n case 8:\n return \"EXTERNAL\";\n case 9:\n return \"REAL\";\n case 10:\n return \"ENUMERATED\";\n case 11:\n return \"EMBEDDED_PDV\";\n case 12:\n return \"UTF8String\";\n case 16:\n return \"SEQUENCE\";\n case 17:\n return \"SET\";\n case 18:\n return \"NumericString\";\n case 19:\n return \"PrintableString\";\n // ASCII subset\n case 20:\n return \"TeletexString\";\n // aka T61String\n case 21:\n return \"VideotexString\";\n case 22:\n return \"IA5String\";\n // ASCII\n case 23:\n return \"UTCTime\";\n case 24:\n return \"GeneralizedTime\";\n case 25:\n return \"GraphicString\";\n case 26:\n return \"VisibleString\";\n // ASCII subset\n case 27:\n return \"GeneralString\";\n case 28:\n return \"UniversalString\";\n case 30:\n return \"BMPString\";\n }\n return \"Universal_\" + this.tag.tagNumber.toString();\n case 1:\n return \"Application_\" + this.tag.tagNumber.toString();\n case 2:\n return \"[\" + this.tag.tagNumber.toString() + \"]\";\n // Context\n case 3:\n return \"Private_\" + this.tag.tagNumber.toString();\n }\n };\n ASN12.prototype.content = function(maxLength) {\n if (this.tag === void 0) {\n return null;\n }\n if (maxLength === void 0) {\n maxLength = Infinity;\n }\n var content = this.posContent();\n var len = Math.abs(this.length);\n if (!this.tag.isUniversal()) {\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n return this.stream.parseOctetString(content, content + len, maxLength);\n }\n switch (this.tag.tagNumber) {\n case 1:\n return this.stream.get(content) === 0 ? \"false\" : \"true\";\n case 2:\n return this.stream.parseInteger(content, content + len);\n case 3:\n return this.sub ? \"(\" + this.sub.length + \" elem)\" : this.stream.parseBitString(content, content + len, maxLength);\n case 4:\n return this.sub ? \"(\" + this.sub.length + \" elem)\" : this.stream.parseOctetString(content, content + len, maxLength);\n // case 0x05: // NULL\n case 6:\n return this.stream.parseOID(content, content + len, maxLength);\n // case 0x07: // ObjectDescriptor\n // case 0x08: // EXTERNAL\n // case 0x09: // REAL\n // case 0x0A: // ENUMERATED\n // case 0x0B: // EMBEDDED_PDV\n case 16:\n // SEQUENCE\n case 17:\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n } else {\n return \"(no elem)\";\n }\n case 12:\n return stringCut(this.stream.parseStringUTF(content, content + len), maxLength);\n case 18:\n // NumericString\n case 19:\n // PrintableString\n case 20:\n // TeletexString\n case 21:\n // VideotexString\n case 22:\n // IA5String\n // case 0x19: // GraphicString\n case 26:\n return stringCut(this.stream.parseStringISO(content, content + len), maxLength);\n case 30:\n return stringCut(this.stream.parseStringBMP(content, content + len), maxLength);\n case 23:\n // UTCTime\n case 24:\n return this.stream.parseTime(content, content + len, this.tag.tagNumber == 23);\n }\n return null;\n };\n ASN12.prototype.toString = function() {\n return this.typeName() + \"@\" + this.stream.pos + \"[header:\" + this.header + \",length:\" + this.length + \",sub:\" + (this.sub === null ? \"null\" : this.sub.length) + \"]\";\n };\n ASN12.prototype.toPrettyString = function(indent) {\n if (indent === void 0) {\n indent = \"\";\n }\n var s = indent + this.typeName() + \" @\" + this.stream.pos;\n if (this.length >= 0) {\n s += \"+\";\n }\n s += this.length;\n if (this.tag.tagConstructed) {\n s += \" (constructed)\";\n } else if (this.tag.isUniversal() && (this.tag.tagNumber == 3 || this.tag.tagNumber == 4) && this.sub !== null) {\n s += \" (encapsulates)\";\n }\n s += \"\\n\";\n if (this.sub !== null) {\n indent += \" \";\n for (var i = 0, max2 = this.sub.length; i < max2; ++i) {\n s += this.sub[i].toPrettyString(indent);\n }\n }\n return s;\n };\n ASN12.prototype.posStart = function() {\n return this.stream.pos;\n };\n ASN12.prototype.posContent = function() {\n return this.stream.pos + this.header;\n };\n ASN12.prototype.posEnd = function() {\n return this.stream.pos + this.header + Math.abs(this.length);\n };\n ASN12.prototype.toHexString = function() {\n return this.stream.hexDump(this.posStart(), this.posEnd(), true);\n };\n ASN12.decodeLength = function(stream) {\n var buf = stream.get();\n var len = buf & 127;\n if (len == buf) {\n return len;\n }\n if (len > 6) {\n throw new Error(\"Length over 48 bits not supported at position \" + (stream.pos - 1));\n }\n if (len === 0) {\n return null;\n }\n buf = 0;\n for (var i = 0; i < len; ++i) {\n buf = buf * 256 + stream.get();\n }\n return buf;\n };\n ASN12.prototype.getHexStringValue = function() {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substring(offset, offset + length);\n };\n ASN12.decode = function(str) {\n var stream;\n if (!(str instanceof Stream)) {\n stream = new Stream(str, 0);\n } else {\n stream = str;\n }\n var streamStart = new Stream(stream);\n var tag = new ASN1Tag(stream);\n var len = ASN12.decodeLength(stream);\n var start = stream.pos;\n var header = start - streamStart.pos;\n var sub = null;\n var getSub = function() {\n var ret = [];\n if (len !== null) {\n var end = start + len;\n while (stream.pos < end) {\n ret[ret.length] = ASN12.decode(stream);\n }\n if (stream.pos != end) {\n throw new Error(\"Content size is not correct for container starting at offset \" + start);\n }\n } else {\n try {\n for (; ; ) {\n var s = ASN12.decode(stream);\n if (s.tag.isEOC()) {\n break;\n }\n ret[ret.length] = s;\n }\n len = start - stream.pos;\n } catch (e) {\n throw new Error(\"Exception while decoding undefined length content: \" + e);\n }\n }\n return ret;\n };\n if (tag.tagConstructed) {\n sub = getSub();\n } else if (tag.isUniversal() && (tag.tagNumber == 3 || tag.tagNumber == 4)) {\n try {\n if (tag.tagNumber == 3) {\n if (stream.get() != 0) {\n throw new Error(\"BIT STRINGs with unused bits cannot encapsulate.\");\n }\n }\n sub = getSub();\n for (var i = 0; i < sub.length; ++i) {\n if (sub[i].tag.isEOC()) {\n throw new Error(\"EOC is not supposed to be actual content.\");\n }\n }\n } catch (e) {\n sub = null;\n }\n }\n if (sub === null) {\n if (len === null) {\n throw new Error(\"We can't skip over an invalid tag with undefined length at offset \" + start);\n }\n stream.pos = start + Math.abs(len);\n }\n return new ASN12(streamStart, header, len, tag, sub);\n };\n return ASN12;\n })()\n);\nvar ASN1Tag = (\n /** @class */\n (function() {\n function ASN1Tag2(stream) {\n var buf = stream.get();\n this.tagClass = buf >> 6;\n this.tagConstructed = (buf & 32) !== 0;\n this.tagNumber = buf & 31;\n if (this.tagNumber == 31) {\n var n = new Int10();\n do {\n buf = stream.get();\n n.mulAdd(128, buf & 127);\n } while (buf & 128);\n this.tagNumber = n.simplify();\n }\n }\n ASN1Tag2.prototype.isUniversal = function() {\n return this.tagClass === 0;\n };\n ASN1Tag2.prototype.isEOC = function() {\n return this.tagClass === 0 && this.tagNumber === 0;\n };\n return ASN1Tag2;\n })()\n);\nvar dbits;\nvar canary = 244837814094590;\nvar j_lm = (canary & 16777215) == 15715070;\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\nvar BigInteger = (\n /** @class */\n (function() {\n function BigInteger2(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n } else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n } else {\n this.fromString(a, b);\n }\n }\n }\n BigInteger2.prototype.toString = function(b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n } else if (b == 8) {\n k = 3;\n } else if (b == 2) {\n k = 1;\n } else if (b == 32) {\n k = 5;\n } else if (b == 4) {\n k = 2;\n } else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & (1 << p) - 1) << k - p;\n d |= this[--i] >> (p += this.DB - k);\n } else {\n d = this[i] >> (p -= k) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += int2char(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n BigInteger2.prototype.negate = function() {\n var r = nbi();\n BigInteger2.ZERO.subTo(this, r);\n return r;\n };\n BigInteger2.prototype.abs = function() {\n return this.s < 0 ? this.negate() : this;\n };\n BigInteger2.prototype.compareTo = function(a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return this.s < 0 ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n BigInteger2.prototype.bitLength = function() {\n if (this.t <= 0) {\n return 0;\n }\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n };\n BigInteger2.prototype.mod = function(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger2.ZERO) > 0) {\n a.subTo(r, r);\n }\n return r;\n };\n BigInteger2.prototype.modPowInt = function(e, m) {\n var z;\n if (e < 256 || m.isEven()) {\n z = new Classic(m);\n } else {\n z = new Montgomery(m);\n }\n return this.exp(e, z);\n };\n BigInteger2.prototype.clone = function() {\n var r = nbi();\n this.copyTo(r);\n return r;\n };\n BigInteger2.prototype.intValue = function() {\n if (this.s < 0) {\n if (this.t == 1) {\n return this[0] - this.DV;\n } else if (this.t == 0) {\n return -1;\n }\n } else if (this.t == 1) {\n return this[0];\n } else if (this.t == 0) {\n return 0;\n }\n return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0];\n };\n BigInteger2.prototype.byteValue = function() {\n return this.t == 0 ? this.s : this[0] << 24 >> 24;\n };\n BigInteger2.prototype.shortValue = function() {\n return this.t == 0 ? this.s : this[0] << 16 >> 16;\n };\n BigInteger2.prototype.signum = function() {\n if (this.s < 0) {\n return -1;\n } else if (this.t <= 0 || this.t == 1 && this[0] <= 0) {\n return 0;\n } else {\n return 1;\n }\n };\n BigInteger2.prototype.toByteArray = function() {\n var i = this.t;\n var r = [];\n r[0] = this.s;\n var p = this.DB - i * this.DB % 8;\n var d;\n var k = 0;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n r[k++] = d | this.s << this.DB - p;\n }\n while (i >= 0) {\n if (p < 8) {\n d = (this[i] & (1 << p) - 1) << 8 - p;\n d |= this[--i] >> (p += this.DB - 8);\n } else {\n d = this[i] >> (p -= 8) & 255;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if ((d & 128) != 0) {\n d |= -256;\n }\n if (k == 0 && (this.s & 128) != (d & 128)) {\n ++k;\n }\n if (k > 0 || d != this.s) {\n r[k++] = d;\n }\n }\n }\n return r;\n };\n BigInteger2.prototype.equals = function(a) {\n return this.compareTo(a) == 0;\n };\n BigInteger2.prototype.min = function(a) {\n return this.compareTo(a) < 0 ? this : a;\n };\n BigInteger2.prototype.max = function(a) {\n return this.compareTo(a) > 0 ? this : a;\n };\n BigInteger2.prototype.and = function(a) {\n var r = nbi();\n this.bitwiseTo(a, op_and, r);\n return r;\n };\n BigInteger2.prototype.or = function(a) {\n var r = nbi();\n this.bitwiseTo(a, op_or, r);\n return r;\n };\n BigInteger2.prototype.xor = function(a) {\n var r = nbi();\n this.bitwiseTo(a, op_xor, r);\n return r;\n };\n BigInteger2.prototype.andNot = function(a) {\n var r = nbi();\n this.bitwiseTo(a, op_andnot, r);\n return r;\n };\n BigInteger2.prototype.not = function() {\n var r = nbi();\n for (var i = 0; i < this.t; ++i) {\n r[i] = this.DM & ~this[i];\n }\n r.t = this.t;\n r.s = ~this.s;\n return r;\n };\n BigInteger2.prototype.shiftLeft = function(n) {\n var r = nbi();\n if (n < 0) {\n this.rShiftTo(-n, r);\n } else {\n this.lShiftTo(n, r);\n }\n return r;\n };\n BigInteger2.prototype.shiftRight = function(n) {\n var r = nbi();\n if (n < 0) {\n this.lShiftTo(-n, r);\n } else {\n this.rShiftTo(n, r);\n }\n return r;\n };\n BigInteger2.prototype.getLowestSetBit = function() {\n for (var i = 0; i < this.t; ++i) {\n if (this[i] != 0) {\n return i * this.DB + lbit(this[i]);\n }\n }\n if (this.s < 0) {\n return this.t * this.DB;\n }\n return -1;\n };\n BigInteger2.prototype.bitCount = function() {\n var r = 0;\n var x = this.s & this.DM;\n for (var i = 0; i < this.t; ++i) {\n r += cbit(this[i] ^ x);\n }\n return r;\n };\n BigInteger2.prototype.testBit = function(n) {\n var j = Math.floor(n / this.DB);\n if (j >= this.t) {\n return this.s != 0;\n }\n return (this[j] & 1 << n % this.DB) != 0;\n };\n BigInteger2.prototype.setBit = function(n) {\n return this.changeBit(n, op_or);\n };\n BigInteger2.prototype.clearBit = function(n) {\n return this.changeBit(n, op_andnot);\n };\n BigInteger2.prototype.flipBit = function(n) {\n return this.changeBit(n, op_xor);\n };\n BigInteger2.prototype.add = function(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n };\n BigInteger2.prototype.subtract = function(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n };\n BigInteger2.prototype.multiply = function(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n };\n BigInteger2.prototype.divide = function(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n };\n BigInteger2.prototype.remainder = function(a) {\n var r = nbi();\n this.divRemTo(a, null, r);\n return r;\n };\n BigInteger2.prototype.divideAndRemainder = function(a) {\n var q = nbi();\n var r = nbi();\n this.divRemTo(a, q, r);\n return [q, r];\n };\n BigInteger2.prototype.modPow = function(e, m) {\n var i = e.bitLength();\n var k;\n var r = nbv(1);\n var z;\n if (i <= 0) {\n return r;\n } else if (i < 18) {\n k = 1;\n } else if (i < 48) {\n k = 3;\n } else if (i < 144) {\n k = 4;\n } else if (i < 768) {\n k = 5;\n } else {\n k = 6;\n }\n if (i < 8) {\n z = new Classic(m);\n } else if (m.isEven()) {\n z = new Barrett(m);\n } else {\n z = new Montgomery(m);\n }\n var g = [];\n var n = 3;\n var k1 = k - 1;\n var km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1;\n var w;\n var is1 = true;\n var r2 = nbi();\n var t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) {\n w = e[j] >> i - k1 & km;\n } else {\n w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n if (j > 0) {\n w |= e[j - 1] >> this.DB + i - k1;\n }\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n g[w].copyTo(r);\n is1 = false;\n } else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) {\n z.sqrTo(r, r2);\n } else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n return z.revert(r);\n };\n BigInteger2.prototype.modInverse = function(m) {\n var ac = m.isEven();\n if (this.isEven() && ac || m.signum() == 0) {\n return BigInteger2.ZERO;\n }\n var u = m.clone();\n var v = this.clone();\n var a = nbv(1);\n var b = nbv(0);\n var c = nbv(0);\n var d = nbv(1);\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u);\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a);\n b.subTo(m, b);\n }\n a.rShiftTo(1, a);\n } else if (!b.isEven()) {\n b.subTo(m, b);\n }\n b.rShiftTo(1, b);\n }\n while (v.isEven()) {\n v.rShiftTo(1, v);\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c);\n d.subTo(m, d);\n }\n c.rShiftTo(1, c);\n } else if (!d.isEven()) {\n d.subTo(m, d);\n }\n d.rShiftTo(1, d);\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u);\n if (ac) {\n a.subTo(c, a);\n }\n b.subTo(d, b);\n } else {\n v.subTo(u, v);\n if (ac) {\n c.subTo(a, c);\n }\n d.subTo(b, d);\n }\n }\n if (v.compareTo(BigInteger2.ONE) != 0) {\n return BigInteger2.ZERO;\n }\n if (d.compareTo(m) >= 0) {\n return d.subtract(m);\n }\n if (d.signum() < 0) {\n d.addTo(m, d);\n } else {\n return d;\n }\n if (d.signum() < 0) {\n return d.add(m);\n } else {\n return d;\n }\n };\n BigInteger2.prototype.pow = function(e) {\n return this.exp(e, new NullExp());\n };\n BigInteger2.prototype.gcd = function(a) {\n var x = this.s < 0 ? this.negate() : this.clone();\n var y = a.s < 0 ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n return x;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n } else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n }\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n return y;\n };\n BigInteger2.prototype.isProbablePrime = function(t) {\n var i;\n var x = this.abs();\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i) {\n if (x[0] == lowprimes[i]) {\n return true;\n }\n }\n return false;\n }\n if (x.isEven()) {\n return false;\n }\n i = 1;\n while (i < lowprimes.length) {\n var m = lowprimes[i];\n var j = i + 1;\n while (j < lowprimes.length && m < lplim) {\n m *= lowprimes[j++];\n }\n m = x.modInt(m);\n while (i < j) {\n if (m % lowprimes[i++] == 0) {\n return false;\n }\n }\n }\n return x.millerRabin(t);\n };\n BigInteger2.prototype.copyTo = function(r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n r.t = this.t;\n r.s = this.s;\n };\n BigInteger2.prototype.fromInt = function(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) {\n this[0] = x;\n } else if (x < -1) {\n this[0] = x + this.DV;\n } else {\n this.t = 0;\n }\n };\n BigInteger2.prototype.fromString = function(s, b) {\n var k;\n if (b == 16) {\n k = 4;\n } else if (b == 8) {\n k = 3;\n } else if (b == 256) {\n k = 8;\n } else if (b == 2) {\n k = 1;\n } else if (b == 32) {\n k = 5;\n } else if (b == 4) {\n k = 2;\n } else {\n this.fromRadix(s, b);\n return;\n }\n this.t = 0;\n this.s = 0;\n var i = s.length;\n var mi = false;\n var sh = 0;\n while (--i >= 0) {\n var x = k == 8 ? +s[i] & 255 : intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") {\n mi = true;\n }\n continue;\n }\n mi = false;\n if (sh == 0) {\n this[this.t++] = x;\n } else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n this[this.t++] = x >> this.DB - sh;\n } else {\n this[this.t - 1] |= x << sh;\n }\n sh += k;\n if (sh >= this.DB) {\n sh -= this.DB;\n }\n }\n if (k == 8 && (+s[0] & 128) != 0) {\n this.s = -1;\n if (sh > 0) {\n this[this.t - 1] |= (1 << this.DB - sh) - 1 << sh;\n }\n }\n this.clamp();\n if (mi) {\n BigInteger2.ZERO.subTo(this, this);\n }\n };\n BigInteger2.prototype.clamp = function() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n };\n BigInteger2.prototype.dlShiftTo = function(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r.t = this.t + n;\n r.s = this.s;\n };\n BigInteger2.prototype.drShiftTo = function(n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n };\n BigInteger2.prototype.lShiftTo = function(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = this.s << bs & this.DM;\n for (var i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = this[i] >> cbs | c;\n c = (this[i] & bm) << bs;\n }\n for (var i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n };\n BigInteger2.prototype.rShiftTo = function(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) {\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n }\n r.t = this.t - ds;\n r.clamp();\n };\n BigInteger2.prototype.subTo = function(a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) {\n r[i++] = this.DV + c;\n } else if (c > 0) {\n r[i++] = c;\n }\n r.t = i;\n r.clamp();\n };\n BigInteger2.prototype.multiplyTo = function(a, r) {\n var x = this.abs();\n var y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n r.s = 0;\n r.clamp();\n if (this.s != a.s) {\n BigInteger2.ZERO.subTo(r, r);\n }\n };\n BigInteger2.prototype.squareTo = function(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) {\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n }\n r.s = 0;\n r.clamp();\n };\n BigInteger2.prototype.divRemTo = function(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) {\n return;\n }\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) {\n q.fromInt(0);\n }\n if (r != null) {\n this.copyTo(r);\n }\n return;\n }\n if (r == null) {\n r = nbi();\n }\n var y = nbi();\n var ts = this.s;\n var ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n } else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) {\n return;\n }\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt;\n var d2 = (1 << this.F1) / yt;\n var e = 1 << this.F2;\n var i = r.t;\n var j = i - ys;\n var t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger2.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n while (--j >= 0) {\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) {\n BigInteger2.ZERO.subTo(q, q);\n }\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) {\n r.rShiftTo(nsh, r);\n }\n if (ts < 0) {\n BigInteger2.ZERO.subTo(r, r);\n }\n };\n BigInteger2.prototype.invDigit = function() {\n if (this.t < 1) {\n return 0;\n }\n var x = this[0];\n if ((x & 1) == 0) {\n return 0;\n }\n var y = x & 3;\n y = y * (2 - (x & 15) * y) & 15;\n y = y * (2 - (x & 255) * y) & 255;\n y = y * (2 - ((x & 65535) * y & 65535)) & 65535;\n y = y * (2 - x * y % this.DV) % this.DV;\n return y > 0 ? this.DV - y : -y;\n };\n BigInteger2.prototype.isEven = function() {\n return (this.t > 0 ? this[0] & 1 : this.s) == 0;\n };\n BigInteger2.prototype.exp = function(e, z) {\n if (e > 4294967295 || e < 1) {\n return BigInteger2.ONE;\n }\n var r = nbi();\n var r2 = nbi();\n var g = z.convert(this);\n var i = nbits(e) - 1;\n g.copyTo(r);\n while (--i >= 0) {\n z.sqrTo(r, r2);\n if ((e & 1 << i) > 0) {\n z.mulTo(r2, g, r);\n } else {\n var t = r;\n r = r2;\n r2 = t;\n }\n }\n return z.revert(r);\n };\n BigInteger2.prototype.chunkSize = function(r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r));\n };\n BigInteger2.prototype.toRadix = function(b) {\n if (b == null) {\n b = 10;\n }\n if (this.signum() == 0 || b < 2 || b > 36) {\n return \"0\";\n }\n var cs = this.chunkSize(b);\n var a = Math.pow(b, cs);\n var d = nbv(a);\n var y = nbi();\n var z = nbi();\n var r = \"\";\n this.divRemTo(d, y, z);\n while (y.signum() > 0) {\n r = (a + z.intValue()).toString(b).substring(1) + r;\n y.divRemTo(d, y, z);\n }\n return z.intValue().toString(b) + r;\n };\n BigInteger2.prototype.fromRadix = function(s, b) {\n this.fromInt(0);\n if (b == null) {\n b = 10;\n }\n var cs = this.chunkSize(b);\n var d = Math.pow(b, cs);\n var mi = false;\n var j = 0;\n var w = 0;\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\" && this.signum() == 0) {\n mi = true;\n }\n continue;\n }\n w = b * w + x;\n if (++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w, 0);\n j = 0;\n w = 0;\n }\n }\n if (j > 0) {\n this.dMultiply(Math.pow(b, j));\n this.dAddOffset(w, 0);\n }\n if (mi) {\n BigInteger2.ZERO.subTo(this, this);\n }\n };\n BigInteger2.prototype.fromNumber = function(a, b, c) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n } else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger2.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n while (!this.isProbablePrime(b)) {\n this.dAddOffset(2, 0);\n if (this.bitLength() > a) {\n this.subTo(BigInteger2.ONE.shiftLeft(a - 1), this);\n }\n }\n }\n } else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= (1 << t) - 1;\n } else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n BigInteger2.prototype.bitwiseTo = function(a, op, r) {\n var i;\n var f;\n var m = Math.min(a.t, this.t);\n for (i = 0; i < m; ++i) {\n r[i] = op(this[i], a[i]);\n }\n if (a.t < this.t) {\n f = a.s & this.DM;\n for (i = m; i < this.t; ++i) {\n r[i] = op(this[i], f);\n }\n r.t = this.t;\n } else {\n f = this.s & this.DM;\n for (i = m; i < a.t; ++i) {\n r[i] = op(f, a[i]);\n }\n r.t = a.t;\n }\n r.s = op(this.s, a.s);\n r.clamp();\n };\n BigInteger2.prototype.changeBit = function(n, op) {\n var r = BigInteger2.ONE.shiftLeft(n);\n this.bitwiseTo(r, op, r);\n return r;\n };\n BigInteger2.prototype.addTo = function(a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) {\n r[i++] = c;\n } else if (c < -1) {\n r[i++] = this.DV + c;\n }\n r.t = i;\n r.clamp();\n };\n BigInteger2.prototype.dMultiply = function(n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);\n ++this.t;\n this.clamp();\n };\n BigInteger2.prototype.dAddOffset = function(n, w) {\n if (n == 0) {\n return;\n }\n while (this.t <= w) {\n this[this.t++] = 0;\n }\n this[w] += n;\n while (this[w] >= this.DV) {\n this[w] -= this.DV;\n if (++w >= this.t) {\n this[this.t++] = 0;\n }\n ++this[w];\n }\n };\n BigInteger2.prototype.multiplyLowerTo = function(a, n, r) {\n var i = Math.min(this.t + a.t, n);\n r.s = 0;\n r.t = i;\n while (i > 0) {\n r[--i] = 0;\n }\n for (var j = r.t - this.t; i < j; ++i) {\n r[i + this.t] = this.am(0, a[i], r, i, 0, this.t);\n }\n for (var j = Math.min(a.t, n); i < j; ++i) {\n this.am(0, a[i], r, i, 0, n - i);\n }\n r.clamp();\n };\n BigInteger2.prototype.multiplyUpperTo = function(a, n, r) {\n --n;\n var i = r.t = this.t + a.t - n;\n r.s = 0;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n);\n }\n r.clamp();\n r.drShiftTo(1, r);\n };\n BigInteger2.prototype.modInt = function(n) {\n if (n <= 0) {\n return 0;\n }\n var d = this.DV % n;\n var r = this.s < 0 ? n - 1 : 0;\n if (this.t > 0) {\n if (d == 0) {\n r = this[0] % n;\n } else {\n for (var i = this.t - 1; i >= 0; --i) {\n r = (d * r + this[i]) % n;\n }\n }\n }\n return r;\n };\n BigInteger2.prototype.millerRabin = function(t) {\n var n1 = this.subtract(BigInteger2.ONE);\n var k = n1.getLowestSetBit();\n if (k <= 0) {\n return false;\n }\n var r = n1.shiftRight(k);\n t = t + 1 >> 1;\n if (t > lowprimes.length) {\n t = lowprimes.length;\n }\n var a = nbi();\n for (var i = 0; i < t; ++i) {\n a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);\n var y = a.modPow(r, this);\n if (y.compareTo(BigInteger2.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this);\n if (y.compareTo(BigInteger2.ONE) == 0) {\n return false;\n }\n }\n if (y.compareTo(n1) != 0) {\n return false;\n }\n }\n }\n return true;\n };\n BigInteger2.prototype.square = function() {\n var r = nbi();\n this.squareTo(r);\n return r;\n };\n BigInteger2.prototype.gcda = function(a, callback) {\n var x = this.s < 0 ? this.negate() : this.clone();\n var y = a.s < 0 ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n callback(x);\n return;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n var gcda1 = function() {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n } else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n if (!(x.signum() > 0)) {\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n setTimeout(function() {\n callback(y);\n }, 0);\n } else {\n setTimeout(gcda1, 0);\n }\n };\n setTimeout(gcda1, 10);\n };\n BigInteger2.prototype.fromNumberAsync = function(a, b, c, callback) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n } else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger2.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n var bnp_1 = this;\n var bnpfn1_1 = function() {\n bnp_1.dAddOffset(2, 0);\n if (bnp_1.bitLength() > a) {\n bnp_1.subTo(BigInteger2.ONE.shiftLeft(a - 1), bnp_1);\n }\n if (bnp_1.isProbablePrime(b)) {\n setTimeout(function() {\n callback();\n }, 0);\n } else {\n setTimeout(bnpfn1_1, 0);\n }\n };\n setTimeout(bnpfn1_1, 0);\n }\n } else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= (1 << t) - 1;\n } else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n return BigInteger2;\n })()\n);\nvar NullExp = (\n /** @class */\n (function() {\n function NullExp2() {\n }\n NullExp2.prototype.convert = function(x) {\n return x;\n };\n NullExp2.prototype.revert = function(x) {\n return x;\n };\n NullExp2.prototype.mulTo = function(x, y, r) {\n x.multiplyTo(y, r);\n };\n NullExp2.prototype.sqrTo = function(x, r) {\n x.squareTo(r);\n };\n return NullExp2;\n })()\n);\nvar Classic = (\n /** @class */\n (function() {\n function Classic2(m) {\n this.m = m;\n }\n Classic2.prototype.convert = function(x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) {\n return x.mod(this.m);\n } else {\n return x;\n }\n };\n Classic2.prototype.revert = function(x) {\n return x;\n };\n Classic2.prototype.reduce = function(x) {\n x.divRemTo(this.m, null, x);\n };\n Classic2.prototype.mulTo = function(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n Classic2.prototype.sqrTo = function(x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Classic2;\n })()\n);\nvar Montgomery = (\n /** @class */\n (function() {\n function Montgomery2(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 32767;\n this.mph = this.mp >> 15;\n this.um = (1 << m.DB - 15) - 1;\n this.mt2 = 2 * m.t;\n }\n Montgomery2.prototype.convert = function(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n this.m.subTo(r, r);\n }\n return r;\n };\n Montgomery2.prototype.revert = function(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n };\n Montgomery2.prototype.reduce = function(x) {\n while (x.t <= this.mt2) {\n x[x.t++] = 0;\n }\n for (var i = 0; i < this.m.t; ++i) {\n var j = x[i] & 32767;\n var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n Montgomery2.prototype.mulTo = function(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n Montgomery2.prototype.sqrTo = function(x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Montgomery2;\n })()\n);\nvar Barrett = (\n /** @class */\n (function() {\n function Barrett2(m) {\n this.m = m;\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2);\n this.mu = this.r2.divide(m);\n }\n Barrett2.prototype.convert = function(x) {\n if (x.s < 0 || x.t > 2 * this.m.t) {\n return x.mod(this.m);\n } else if (x.compareTo(this.m) < 0) {\n return x;\n } else {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n };\n Barrett2.prototype.revert = function(x) {\n return x;\n };\n Barrett2.prototype.reduce = function(x) {\n x.drShiftTo(this.m.t - 1, this.r2);\n if (x.t > this.m.t + 1) {\n x.t = this.m.t + 1;\n x.clamp();\n }\n this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);\n this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);\n while (x.compareTo(this.r2) < 0) {\n x.dAddOffset(1, this.m.t + 1);\n }\n x.subTo(this.r2, x);\n while (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n Barrett2.prototype.mulTo = function(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n Barrett2.prototype.sqrTo = function(x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Barrett2;\n })()\n);\nfunction nbi() {\n return new BigInteger(null);\n}\nfunction parseBigInt(str, r) {\n return new BigInteger(str, r);\n}\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && navigator.appName == \"Microsoft Internet Explorer\") {\n BigInteger.prototype.am = function am2(i, x, w, j, c, n) {\n var xl = x & 32767;\n var xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 32767;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 32767) << 15) + w[j] + (c & 1073741823);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 1073741823;\n }\n return c;\n };\n dbits = 30;\n} else if (inBrowser && j_lm && navigator.appName != \"Netscape\") {\n BigInteger.prototype.am = function am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 67108864);\n w[j++] = v & 67108863;\n }\n return c;\n };\n dbits = 26;\n} else {\n BigInteger.prototype.am = function am3(i, x, w, j, c, n) {\n var xl = x & 16383;\n var xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 16383;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 16383) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 268435455;\n }\n return c;\n };\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\nvar BI_RC = [];\nvar rr;\nvar vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\nfunction nbits(x) {\n var r = 1;\n var t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\nvar Arcfour = (\n /** @class */\n (function() {\n function Arcfour2() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n Arcfour2.prototype.init = function(key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = j + this.S[i] + key[i % key.length] & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n Arcfour2.prototype.next = function() {\n var t;\n this.i = this.i + 1 & 255;\n this.j = this.j + this.S[this.i] & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[t + this.S[this.i] & 255];\n };\n return Arcfour2;\n })()\n);\nfunction prng_newstate() {\n return new Arcfour();\n}\nvar rng_psize = 256;\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== \"undefined\" && self.crypto && self.crypto.getRandomValues) {\n var z = new Uint32Array(256);\n self.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n var count = 0;\n var onMouseMoveListener_1 = function(ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= rng_psize) {\n if (self.removeEventListener) {\n self.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n } else if (self.detachEvent) {\n self.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n } catch (e) {\n }\n };\n if (typeof window !== \"undefined\") {\n if (self.addEventListener) {\n self.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n } else if (self.attachEvent) {\n self.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = prng_newstate();\n while (rng_pptr < rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n return rng_state.next();\n}\nvar SecureRandom = (\n /** @class */\n (function() {\n function SecureRandom2() {\n }\n SecureRandom2.prototype.nextBytes = function(ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom2;\n })()\n);\nfunction rstr_sha256(s) {\n return binb2rstr(binb_sha256(rstr2binb(s), s.length * 8));\n}\nfunction rstr2hex(input) {\n var hex_tab = \"0123456789abcdef\";\n var output = \"\";\n for (var i = 0; i < input.length; i++) {\n var x = input.charCodeAt(i);\n output += hex_tab.charAt(x >>> 4 & 15) + hex_tab.charAt(x & 15);\n }\n return output;\n}\nfunction rstr2binb(input) {\n var output = Array(input.length >> 2);\n for (var i = 0; i < output.length; i++)\n output[i] = 0;\n for (var i = 0; i < input.length * 8; i += 8)\n output[i >> 5] |= (input.charCodeAt(i / 8) & 255) << 24 - i % 32;\n return output;\n}\nfunction binb2rstr(input) {\n var output = \"\";\n for (var i = 0; i < input.length * 32; i += 8)\n output += String.fromCharCode(input[i >> 5] >>> 24 - i % 32 & 255);\n return output;\n}\nfunction sha256_S(X, n) {\n return X >>> n | X << 32 - n;\n}\nfunction sha256_R(X, n) {\n return X >>> n;\n}\nfunction sha256_Ch(x, y, z) {\n return x & y ^ ~x & z;\n}\nfunction sha256_Maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n}\nfunction sha256_Sigma0256(x) {\n return sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22);\n}\nfunction sha256_Sigma1256(x) {\n return sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25);\n}\nfunction sha256_Gamma0256(x) {\n return sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3);\n}\nfunction sha256_Gamma1256(x) {\n return sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10);\n}\nvar sha256_K = new Array(1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822, -1538233109, -1090935817, -965641998);\nfunction binb_sha256(m, l) {\n var HASH = new Array(1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372, 528734635, 1541459225);\n var W = new Array(64);\n var a, b, c, d, e, f, g, h;\n var i, j, T1, T2;\n m[l >> 5] |= 128 << 24 - l % 32;\n m[(l + 64 >> 9 << 4) + 15] = l;\n for (i = 0; i < m.length; i += 16) {\n a = HASH[0];\n b = HASH[1];\n c = HASH[2];\n d = HASH[3];\n e = HASH[4];\n f = HASH[5];\n g = HASH[6];\n h = HASH[7];\n for (j = 0; j < 64; j++) {\n if (j < 16)\n W[j] = m[j + i];\n else\n W[j] = safe_add(safe_add(safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]), sha256_Gamma0256(W[j - 15])), W[j - 16]);\n T1 = safe_add(safe_add(safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)), sha256_K[j]), W[j]);\n T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safe_add(d, T1);\n d = c;\n c = b;\n b = a;\n a = safe_add(T1, T2);\n }\n HASH[0] = safe_add(a, HASH[0]);\n HASH[1] = safe_add(b, HASH[1]);\n HASH[2] = safe_add(c, HASH[2]);\n HASH[3] = safe_add(d, HASH[3]);\n HASH[4] = safe_add(e, HASH[4]);\n HASH[5] = safe_add(f, HASH[5]);\n HASH[6] = safe_add(g, HASH[6]);\n HASH[7] = safe_add(h, HASH[7]);\n }\n return HASH;\n}\nfunction safe_add(x, y) {\n var lsw = (x & 65535) + (y & 65535);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 65535;\n}\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return parseBigInt(m, 16);\n}\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) {\n ba[--n] = c;\n } else if (c > 127 && c < 2048) {\n ba[--n] = c & 63 | 128;\n ba[--n] = c >> 6 | 192;\n } else {\n ba[--n] = c & 63 | 128;\n ba[--n] = c >> 6 & 63 | 128;\n ba[--n] = c >> 12 | 224;\n }\n }\n ba[--n] = 0;\n var rng = new SecureRandom();\n var x = [];\n while (n > 2) {\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new BigInteger(ba);\n}\nfunction oaep_mgf1_arr(seed, len, hashFunc) {\n var mask = \"\", i = 0;\n while (mask.length < len) {\n mask += hashFunc(String.fromCharCode.apply(String, seed.concat([\n (i & 4278190080) >> 24,\n (i & 16711680) >> 16,\n (i & 65280) >> 8,\n i & 255\n ])));\n i += 1;\n }\n return mask;\n}\nvar SHA256_SIZE = 32;\nfunction oaep_pad(s, n) {\n var hashLen = SHA256_SIZE;\n var hashFunc = rstr_sha256;\n if (s.length + 2 * hashLen + 2 > n) {\n throw \"Message too long for RSA\";\n }\n var PS = \"\", i;\n for (i = 0; i < n - s.length - 2 * hashLen - 2; i += 1) {\n PS += \"\\0\";\n }\n var DB = hashFunc(\"\") + PS + \"\u0001\" + s, seed = new Array(hashLen);\n new SecureRandom().nextBytes(seed);\n var dbMask = oaep_mgf1_arr(seed, DB.length, hashFunc), maskedDB = [];\n for (i = 0; i < DB.length; i += 1) {\n maskedDB[i] = DB.charCodeAt(i) ^ dbMask.charCodeAt(i);\n }\n var seedMask = oaep_mgf1_arr(maskedDB, seed.length, hashFunc), maskedSeed = [0];\n for (i = 0; i < seed.length; i += 1) {\n maskedSeed[i + 1] = seed[i] ^ seedMask.charCodeAt(i);\n }\n return new BigInteger(maskedSeed.concat(maskedDB));\n}\nvar RSAKey = (\n /** @class */\n (function() {\n function RSAKey2() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n RSAKey2.prototype.doPublic = function(x) {\n return x.modPowInt(this.e, this.n);\n };\n RSAKey2.prototype.doPrivate = function(x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n RSAKey2.prototype.setPublic = function(N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n } else {\n console.error(\"Invalid RSA public key\");\n }\n };\n RSAKey2.prototype.encrypt = function(text, paddingFunction) {\n if (typeof paddingFunction === \"undefined\") {\n paddingFunction = pkcs1pad2;\n }\n var maxLength = this.n.bitLength() + 7 >> 3;\n var m = paddingFunction(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n RSAKey2.prototype.setPrivate = function(N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n } else {\n console.error(\"Invalid RSA private key\");\n }\n };\n RSAKey2.prototype.setPrivateEx = function(N, E, D, P, Q, DP, DQ, C) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n this.p = parseBigInt(P, 16);\n this.q = parseBigInt(Q, 16);\n this.dmp1 = parseBigInt(DP, 16);\n this.dmq1 = parseBigInt(DQ, 16);\n this.coeff = parseBigInt(C, 16);\n } else {\n console.error(\"Invalid RSA private key\");\n }\n };\n RSAKey2.prototype.generate = function(B, E) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n for (; ; ) {\n for (; ; ) {\n this.p = new BigInteger(B - qs, 1, rng);\n if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {\n break;\n }\n }\n for (; ; ) {\n this.q = new BigInteger(qs, 1, rng);\n if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {\n break;\n }\n }\n if (this.p.compareTo(this.q) <= 0) {\n var t = this.p;\n this.p = this.q;\n this.q = t;\n }\n var p1 = this.p.subtract(BigInteger.ONE);\n var q1 = this.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n this.n = this.p.multiply(this.q);\n this.d = ee.modInverse(phi);\n this.dmp1 = this.d.mod(p1);\n this.dmq1 = this.d.mod(q1);\n this.coeff = this.q.modInverse(this.p);\n break;\n }\n }\n };\n RSAKey2.prototype.decrypt = function(ctext) {\n var c = parseBigInt(ctext, 16);\n var m = this.doPrivate(c);\n if (m == null) {\n return null;\n }\n return pkcs1unpad2(m, this.n.bitLength() + 7 >> 3);\n };\n RSAKey2.prototype.generateAsync = function(B, E, callback) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n var rsa = this;\n var loop1 = function() {\n var loop4 = function() {\n if (rsa.p.compareTo(rsa.q) <= 0) {\n var t = rsa.p;\n rsa.p = rsa.q;\n rsa.q = t;\n }\n var p1 = rsa.p.subtract(BigInteger.ONE);\n var q1 = rsa.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n rsa.n = rsa.p.multiply(rsa.q);\n rsa.d = ee.modInverse(phi);\n rsa.dmp1 = rsa.d.mod(p1);\n rsa.dmq1 = rsa.d.mod(q1);\n rsa.coeff = rsa.q.modInverse(rsa.p);\n setTimeout(function() {\n callback();\n }, 0);\n } else {\n setTimeout(loop1, 0);\n }\n };\n var loop3 = function() {\n rsa.q = nbi();\n rsa.q.fromNumberAsync(qs, 1, rng, function() {\n rsa.q.subtract(BigInteger.ONE).gcda(ee, function(r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {\n setTimeout(loop4, 0);\n } else {\n setTimeout(loop3, 0);\n }\n });\n });\n };\n var loop2 = function() {\n rsa.p = nbi();\n rsa.p.fromNumberAsync(B - qs, 1, rng, function() {\n rsa.p.subtract(BigInteger.ONE).gcda(ee, function(r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {\n setTimeout(loop3, 0);\n } else {\n setTimeout(loop2, 0);\n }\n });\n });\n };\n setTimeout(loop2, 0);\n };\n setTimeout(loop1, 0);\n };\n RSAKey2.prototype.sign = function(text, digestMethod, digestName) {\n var header = getDigestHeader(digestName);\n var digest = header + digestMethod(text).toString();\n var maxLength = this.n.bitLength() / 4;\n var m = pkcs1pad1(digest, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPrivate(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n for (var i = 0; i < maxLength - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n RSAKey2.prototype.verify = function(text, signature, digestMethod) {\n var c = parseBigInt(signature, 16);\n var m = this.doPublic(c);\n if (m == null) {\n return null;\n }\n var unpadded = m.toString(16).replace(/^1f+00/, \"\");\n var digest = removeDigestHeader(unpadded);\n return digest == digestMethod(text).toString();\n };\n return RSAKey2;\n })()\n);\nfunction pkcs1unpad2(d, n) {\n var b = d.toByteArray();\n var i = 0;\n while (i < b.length && b[i] == 0) {\n ++i;\n }\n if (b.length - i != n - 1 || b[i] != 2) {\n return null;\n }\n ++i;\n while (b[i] != 0) {\n if (++i >= b.length) {\n return null;\n }\n }\n var ret = \"\";\n while (++i < b.length) {\n var c = b[i] & 255;\n if (c < 128) {\n ret += String.fromCharCode(c);\n } else if (c > 191 && c < 224) {\n ret += String.fromCharCode((c & 31) << 6 | b[i + 1] & 63);\n ++i;\n } else {\n ret += String.fromCharCode((c & 15) << 12 | (b[i + 1] & 63) << 6 | b[i + 2] & 63);\n i += 2;\n }\n }\n return ret;\n}\nvar DIGEST_HEADERS = {\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n ripemd160: \"3021300906052b2403020105000414\"\n};\nfunction getDigestHeader(name) {\n return DIGEST_HEADERS[name] || \"\";\n}\nfunction removeDigestHeader(str) {\n for (var name_1 in DIGEST_HEADERS) {\n if (DIGEST_HEADERS.hasOwnProperty(name_1)) {\n var header = DIGEST_HEADERS[name_1];\n var len = header.length;\n if (str.substring(0, len) == header) {\n return str.substring(len);\n }\n }\n }\n return str;\n}\nfunction extendClass(subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"extend failed, please check that all dependencies are included.\");\n }\n var F = function() {\n };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n}\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\nvar KJUR = {};\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\nKJUR.asn1.ASN1Util = new function() {\n this.integerToByteHex = function(i) {\n var h = i.toString(16);\n if (h.length % 2 == 1)\n h = \"0\" + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function(bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substring(0, 1) != \"-\") {\n if (h.length % 2 == 1) {\n h = \"0\" + h;\n } else {\n if (!h.match(/^[0-7]/)) {\n h = \"00\" + h;\n }\n }\n } else {\n var hPos = h.substring(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n } else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = \"\";\n for (var i = 0; i < xorLen; i++) {\n hMask += \"f\";\n }\n var biMask = new BigInteger(hMask, 16);\n var biNeg = biMask.xor(bigIntegerValue).add(BigInteger.ONE);\n h = biNeg.toString(16).replace(/^-/, \"\");\n }\n return h;\n };\n this.getPEMStringFromHex = function(dataHex, pemHeader) {\n return hextopem(dataHex, pemHeader);\n };\n this.newObject = function(param) {\n var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject;\n var keys = Object.keys(param);\n if (keys.length != 1)\n throw \"key of param shall be only one.\";\n var key = keys[0];\n if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + key + \":\") == -1)\n throw \"undefined key: \" + key;\n if (key == \"bool\")\n return new _DERBoolean(param[key]);\n if (key == \"int\")\n return new _DERInteger(param[key]);\n if (key == \"bitstr\")\n return new _DERBitString(param[key]);\n if (key == \"octstr\")\n return new _DEROctetString(param[key]);\n if (key == \"null\")\n return new _DERNull(param[key]);\n if (key == \"oid\")\n return new _DERObjectIdentifier(param[key]);\n if (key == \"enum\")\n return new _DEREnumerated(param[key]);\n if (key == \"utf8str\")\n return new _DERUTF8String(param[key]);\n if (key == \"numstr\")\n return new _DERNumericString(param[key]);\n if (key == \"prnstr\")\n return new _DERPrintableString(param[key]);\n if (key == \"telstr\")\n return new _DERTeletexString(param[key]);\n if (key == \"ia5str\")\n return new _DERIA5String(param[key]);\n if (key == \"utctime\")\n return new _DERUTCTime(param[key]);\n if (key == \"gentime\")\n return new _DERGeneralizedTime(param[key]);\n if (key == \"seq\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSequence({ \"array\": a });\n }\n if (key == \"set\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSet({ \"array\": a });\n }\n if (key == \"tag\") {\n var tagParam = param[key];\n if (Object.prototype.toString.call(tagParam) === \"[object Array]\" && tagParam.length == 3) {\n var obj = _newObject(tagParam[2]);\n return new _DERTaggedObject({\n tag: tagParam[0],\n explicit: tagParam[1],\n obj\n });\n } else {\n var newParam = {};\n if (tagParam.explicit !== void 0)\n newParam.explicit = tagParam.explicit;\n if (tagParam.tag !== void 0)\n newParam.tag = tagParam.tag;\n if (tagParam.obj === void 0)\n throw \"obj shall be specified for 'tag'.\";\n newParam.obj = _newObject(tagParam.obj);\n return new _DERTaggedObject(newParam);\n }\n }\n };\n this.jsonToASN1HEX = function(param) {\n var asn1Obj = this.newObject(param);\n return asn1Obj.getEncodedHex();\n };\n}();\nKJUR.asn1.ASN1Util.oidHexToInt = function(hex) {\n var s = \"\";\n var i01 = parseInt(hex.substring(0, 2), 16);\n var i0 = Math.floor(i01 / 40);\n var i1 = i01 % 40;\n var s = i0 + \".\" + i1;\n var binbuf = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n var value = parseInt(hex.substring(i, i + 2), 16);\n var bin = (\"00000000\" + value.toString(2)).slice(-8);\n binbuf = binbuf + bin.substring(1, 8);\n if (bin.substring(0, 1) == \"0\") {\n var bi = new BigInteger(binbuf, 2);\n s = s + \".\" + bi.toString(10);\n binbuf = \"\";\n }\n }\n return s;\n};\nKJUR.asn1.ASN1Util.oidIntToHex = function(oidString) {\n var itox = function(i2) {\n var h2 = i2.toString(16);\n if (h2.length == 1)\n h2 = \"0\" + h2;\n return h2;\n };\n var roidtox = function(roid) {\n var h2 = \"\";\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = \"\";\n for (var i2 = 0; i2 < padLen; i2++)\n bPad += \"0\";\n b = bPad + b;\n for (var i2 = 0; i2 < b.length - 1; i2 += 7) {\n var b8 = b.substring(i2, i2 + 7);\n if (i2 != b.length - 7)\n b8 = \"1\" + b8;\n h2 += itox(parseInt(b8, 2));\n }\n return h2;\n };\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = \"\";\n var a = oidString.split(\".\");\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n return h;\n};\nKJUR.asn1.ASN1Object = function() {\n var hV = \"\";\n this.getLengthHexFromValue = function() {\n if (typeof this.hV == \"undefined\" || this.hV == null) {\n throw \"this.hV is null or undefined.\";\n }\n if (this.hV.length % 2 == 1) {\n throw \"value hex must be even length: n=\" + hV.length + \",v=\" + this.hV;\n }\n var n = this.hV.length / 2;\n var hN = n.toString(16);\n if (hN.length % 2 == 1) {\n hN = \"0\" + hN;\n }\n if (n < 128) {\n return hN;\n } else {\n var hNlen = hN.length / 2;\n if (hNlen > 15) {\n throw \"ASN.1 length too long to represent by 8x: n = \" + n.toString(16);\n }\n var head = 128 + hNlen;\n return head.toString(16) + hN;\n }\n };\n this.getEncodedHex = function() {\n if (this.hTLV == null || this.isModified) {\n this.hV = this.getFreshValueHex();\n this.hL = this.getLengthHexFromValue();\n this.hTLV = this.hT + this.hL + this.hV;\n this.isModified = false;\n }\n return this.hTLV;\n };\n this.getValueHex = function() {\n this.getEncodedHex();\n return this.hV;\n };\n this.getFreshValueHex = function() {\n return \"\";\n };\n};\nKJUR.asn1.DERAbstractString = function(params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n this.getString = function() {\n return this.s;\n };\n this.setString = function(newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(this.s);\n };\n this.setStringHex = function(newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\") {\n this.setString(params);\n } else if (typeof params[\"str\"] != \"undefined\") {\n this.setString(params[\"str\"]);\n } else if (typeof params[\"hex\"] != \"undefined\") {\n this.setStringHex(params[\"hex\"]);\n }\n }\n};\nextendClass(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERAbstractTime = function(params) {\n KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);\n this.localDateToUTC = function(d) {\n utc = d.getTime() + d.getTimezoneOffset() * 6e4;\n var utcDate = new Date(utc);\n return utcDate;\n };\n this.formatDate = function(dateObject, type, withMillis) {\n var pad = this.zeroPadding;\n var d = this.localDateToUTC(dateObject);\n var year = String(d.getFullYear());\n if (type == \"utc\")\n year = year.substring(2, 4);\n var month = pad(String(d.getMonth() + 1), 2);\n var day = pad(String(d.getDate()), 2);\n var hour = pad(String(d.getHours()), 2);\n var min = pad(String(d.getMinutes()), 2);\n var sec = pad(String(d.getSeconds()), 2);\n var s = year + month + day + hour + min + sec;\n if (withMillis === true) {\n var millis = d.getMilliseconds();\n if (millis != 0) {\n var sMillis = pad(String(millis), 3);\n sMillis = sMillis.replace(/[0]+$/, \"\");\n s = s + \".\" + sMillis;\n }\n }\n return s + \"Z\";\n };\n this.zeroPadding = function(s, len) {\n if (s.length >= len)\n return s;\n return new Array(len - s.length + 1).join(\"0\") + s;\n };\n this.getString = function() {\n return this.s;\n };\n this.setString = function(newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(newS);\n };\n this.setByDateValue = function(year, month, day, hour, min, sec) {\n var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));\n this.setByDate(dateObject);\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n};\nextendClass(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERAbstractStructured = function(params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n this.setByASN1ObjectArray = function(asn1ObjectArray) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array = asn1ObjectArray;\n };\n this.appendASN1Object = function(asn1Object) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array.push(asn1Object);\n };\n this.asn1Array = new Array();\n if (typeof params != \"undefined\") {\n if (typeof params[\"array\"] != \"undefined\") {\n this.asn1Array = params[\"array\"];\n }\n }\n};\nextendClass(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERBoolean = function() {\n KJUR.asn1.DERBoolean.superclass.constructor.call(this);\n this.hT = \"01\";\n this.hTLV = \"0101ff\";\n};\nextendClass(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERInteger = function(params) {\n KJUR.asn1.DERInteger.superclass.constructor.call(this);\n this.hT = \"02\";\n this.setByBigInteger = function(bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n this.setByInteger = function(intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n this.setValueHex = function(newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params[\"bigint\"] != \"undefined\") {\n this.setByBigInteger(params[\"bigint\"]);\n } else if (typeof params[\"int\"] != \"undefined\") {\n this.setByInteger(params[\"int\"]);\n } else if (typeof params == \"number\") {\n this.setByInteger(params);\n } else if (typeof params[\"hex\"] != \"undefined\") {\n this.setValueHex(params[\"hex\"]);\n }\n }\n};\nextendClass(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERBitString = function(params) {\n if (params !== void 0 && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = \"00\" + o.getEncodedHex();\n }\n KJUR.asn1.DERBitString.superclass.constructor.call(this);\n this.hT = \"03\";\n this.setHexValueIncludingUnusedBits = function(newHexStringIncludingUnusedBits) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = newHexStringIncludingUnusedBits;\n };\n this.setUnusedBitsAndHexValue = function(unusedBits, hValue) {\n if (unusedBits < 0 || 7 < unusedBits) {\n throw \"unused bits shall be from 0 to 7: u = \" + unusedBits;\n }\n var hUnusedBits = \"0\" + unusedBits;\n this.hTLV = null;\n this.isModified = true;\n this.hV = hUnusedBits + hValue;\n };\n this.setByBinaryString = function(binaryString) {\n binaryString = binaryString.replace(/0+$/, \"\");\n var unusedBits = 8 - binaryString.length % 8;\n if (unusedBits == 8)\n unusedBits = 0;\n for (var i = 0; i <= unusedBits; i++) {\n binaryString += \"0\";\n }\n var h = \"\";\n for (var i = 0; i < binaryString.length - 1; i += 8) {\n var b = binaryString.substring(i, i + 8);\n var x = parseInt(b, 2).toString(16);\n if (x.length == 1)\n x = \"0\" + x;\n h += x;\n }\n this.hTLV = null;\n this.isModified = true;\n this.hV = \"0\" + unusedBits + h;\n };\n this.setByBooleanArray = function(booleanArray) {\n var s = \"\";\n for (var i = 0; i < booleanArray.length; i++) {\n if (booleanArray[i] == true) {\n s += \"1\";\n } else {\n s += \"0\";\n }\n }\n this.setByBinaryString(s);\n };\n this.newFalseArray = function(nLength) {\n var a = new Array(nLength);\n for (var i = 0; i < nLength; i++) {\n a[i] = false;\n }\n return a;\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\" && params.toLowerCase().match(/^[0-9a-f]+$/)) {\n this.setHexValueIncludingUnusedBits(params);\n } else if (typeof params[\"hex\"] != \"undefined\") {\n this.setHexValueIncludingUnusedBits(params[\"hex\"]);\n } else if (typeof params[\"bin\"] != \"undefined\") {\n this.setByBinaryString(params[\"bin\"]);\n } else if (typeof params[\"array\"] != \"undefined\") {\n this.setByBooleanArray(params[\"array\"]);\n }\n }\n};\nextendClass(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);\nKJUR.asn1.DEROctetString = function(params) {\n if (params !== void 0 && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = o.getEncodedHex();\n }\n KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);\n this.hT = \"04\";\n};\nextendClass(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);\nKJUR.asn1.DERNull = function() {\n KJUR.asn1.DERNull.superclass.constructor.call(this);\n this.hT = \"05\";\n this.hTLV = \"0500\";\n};\nextendClass(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERObjectIdentifier = function(params) {\n var itox = function(i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = \"0\" + h;\n return h;\n };\n var roidtox = function(roid) {\n var h = \"\";\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = \"\";\n for (var i = 0; i < padLen; i++)\n bPad += \"0\";\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substring(i, i + 7);\n if (i != b.length - 7)\n b8 = \"1\" + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);\n this.hT = \"06\";\n this.setValueHex = function(newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n this.setValueOidString = function(oidString) {\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = \"\";\n var a = oidString.split(\".\");\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = h;\n };\n this.setValueName = function(oidName) {\n var oid = KJUR.asn1.x509.OID.name2oid(oidName);\n if (oid !== \"\") {\n this.setValueOidString(oid);\n } else {\n throw \"DERObjectIdentifier oidName undefined: \" + oidName;\n }\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n if (params !== void 0) {\n if (typeof params === \"string\") {\n if (params.match(/^[0-2].[0-9.]+$/)) {\n this.setValueOidString(params);\n } else {\n this.setValueName(params);\n }\n } else if (params.oid !== void 0) {\n this.setValueOidString(params.oid);\n } else if (params.hex !== void 0) {\n this.setValueHex(params.hex);\n } else if (params.name !== void 0) {\n this.setValueName(params.name);\n }\n }\n};\nextendClass(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);\nKJUR.asn1.DEREnumerated = function(params) {\n KJUR.asn1.DEREnumerated.superclass.constructor.call(this);\n this.hT = \"0a\";\n this.setByBigInteger = function(bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n this.setByInteger = function(intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n this.setValueHex = function(newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params[\"int\"] != \"undefined\") {\n this.setByInteger(params[\"int\"]);\n } else if (typeof params == \"number\") {\n this.setByInteger(params);\n } else if (typeof params[\"hex\"] != \"undefined\") {\n this.setValueHex(params[\"hex\"]);\n }\n }\n};\nextendClass(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);\nKJUR.asn1.DERUTF8String = function(params) {\n KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);\n this.hT = \"0c\";\n};\nextendClass(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);\nKJUR.asn1.DERNumericString = function(params) {\n KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);\n this.hT = \"12\";\n};\nextendClass(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);\nKJUR.asn1.DERPrintableString = function(params) {\n KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);\n this.hT = \"13\";\n};\nextendClass(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);\nKJUR.asn1.DERTeletexString = function(params) {\n KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);\n this.hT = \"14\";\n};\nextendClass(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);\nKJUR.asn1.DERIA5String = function(params) {\n KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);\n this.hT = \"16\";\n};\nextendClass(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);\nKJUR.asn1.DERUTCTime = function(params) {\n KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);\n this.hT = \"17\";\n this.setByDate = function(dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, \"utc\");\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function() {\n if (typeof this.date == \"undefined\" && typeof this.s == \"undefined\") {\n this.date = /* @__PURE__ */ new Date();\n this.s = this.formatDate(this.date, \"utc\");\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== void 0) {\n if (params.str !== void 0) {\n this.setString(params.str);\n } else if (typeof params == \"string\" && params.match(/^[0-9]{12}Z$/)) {\n this.setString(params);\n } else if (params.hex !== void 0) {\n this.setStringHex(params.hex);\n } else if (params.date !== void 0) {\n this.setByDate(params.date);\n }\n }\n};\nextendClass(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);\nKJUR.asn1.DERGeneralizedTime = function(params) {\n KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);\n this.hT = \"18\";\n this.withMillis = false;\n this.setByDate = function(dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, \"gen\", this.withMillis);\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function() {\n if (this.date === void 0 && this.s === void 0) {\n this.date = /* @__PURE__ */ new Date();\n this.s = this.formatDate(this.date, \"gen\", this.withMillis);\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== void 0) {\n if (params.str !== void 0) {\n this.setString(params.str);\n } else if (typeof params == \"string\" && params.match(/^[0-9]{14}Z$/)) {\n this.setString(params);\n } else if (params.hex !== void 0) {\n this.setStringHex(params.hex);\n } else if (params.date !== void 0) {\n this.setByDate(params.date);\n }\n if (params.millis === true) {\n this.withMillis = true;\n }\n }\n};\nextendClass(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);\nKJUR.asn1.DERSequence = function(params) {\n KJUR.asn1.DERSequence.superclass.constructor.call(this, params);\n this.hT = \"30\";\n this.getFreshValueHex = function() {\n var h = \"\";\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n h += asn1Obj.getEncodedHex();\n }\n this.hV = h;\n return this.hV;\n };\n};\nextendClass(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);\nKJUR.asn1.DERSet = function(params) {\n KJUR.asn1.DERSet.superclass.constructor.call(this, params);\n this.hT = \"31\";\n this.sortFlag = true;\n this.getFreshValueHex = function() {\n var a = new Array();\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n a.push(asn1Obj.getEncodedHex());\n }\n if (this.sortFlag == true)\n a.sort();\n this.hV = a.join(\"\");\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params.sortflag != \"undefined\" && params.sortflag == false)\n this.sortFlag = false;\n }\n};\nextendClass(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);\nKJUR.asn1.DERTaggedObject = function(params) {\n KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);\n this.hT = \"a0\";\n this.hV = \"\";\n this.isExplicit = true;\n this.asn1Object = null;\n this.setASN1Object = function(isExplicitFlag, tagNoHex, asn1Object) {\n this.hT = tagNoHex;\n this.isExplicit = isExplicitFlag;\n this.asn1Object = asn1Object;\n if (this.isExplicit) {\n this.hV = this.asn1Object.getEncodedHex();\n this.hTLV = null;\n this.isModified = true;\n } else {\n this.hV = null;\n this.hTLV = asn1Object.getEncodedHex();\n this.hTLV = this.hTLV.replace(/^../, tagNoHex);\n this.isModified = false;\n }\n };\n this.getFreshValueHex = function() {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params[\"tag\"] != \"undefined\") {\n this.hT = params[\"tag\"];\n }\n if (typeof params[\"explicit\"] != \"undefined\") {\n this.isExplicit = params[\"explicit\"];\n }\n if (typeof params[\"obj\"] != \"undefined\") {\n this.asn1Object = params[\"obj\"];\n this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);\n }\n }\n};\nextendClass(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);\nvar __extends = /* @__PURE__ */ (function() {\n var extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {\n d2.__proto__ = b2;\n } || function(d2, b2) {\n for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];\n };\n return extendStatics(d, b);\n };\n return function(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar JSEncryptRSAKey = (\n /** @class */\n (function(_super) {\n __extends(JSEncryptRSAKey2, _super);\n function JSEncryptRSAKey2(key) {\n var _this = _super.call(this) || this;\n if (key) {\n if (typeof key === \"string\") {\n _this.parseKey(key);\n } else if (JSEncryptRSAKey2.hasPrivateKeyProperty(key) || JSEncryptRSAKey2.hasPublicKeyProperty(key)) {\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n JSEncryptRSAKey2.prototype.parseKey = function(pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem);\n var asn1 = ASN1.decode(der);\n if (asn1.sub.length === 3) {\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n modulus = asn1.sub[1].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = asn1.sub[2].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n var private_exponent = asn1.sub[3].getHexStringValue();\n this.d = parseBigInt(private_exponent, 16);\n var prime1 = asn1.sub[4].getHexStringValue();\n this.p = parseBigInt(prime1, 16);\n var prime2 = asn1.sub[5].getHexStringValue();\n this.q = parseBigInt(prime2, 16);\n var exponent1 = asn1.sub[6].getHexStringValue();\n this.dmp1 = parseBigInt(exponent1, 16);\n var exponent2 = asn1.sub[7].getHexStringValue();\n this.dmq1 = parseBigInt(exponent2, 16);\n var coefficient = asn1.sub[8].getHexStringValue();\n this.coeff = parseBigInt(coefficient, 16);\n } else if (asn1.sub.length === 2) {\n if (asn1.sub[0].sub) {\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n modulus = sequence.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n } else {\n modulus = asn1.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = asn1.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n } else {\n return false;\n }\n return true;\n } catch (ex) {\n return false;\n }\n };\n JSEncryptRSAKey2.prototype.getPrivateBaseKey = function() {\n var options = {\n array: [\n new KJUR.asn1.DERInteger({ int: 0 }),\n new KJUR.asn1.DERInteger({ bigint: this.n }),\n new KJUR.asn1.DERInteger({ int: this.e }),\n new KJUR.asn1.DERInteger({ bigint: this.d }),\n new KJUR.asn1.DERInteger({ bigint: this.p }),\n new KJUR.asn1.DERInteger({ bigint: this.q }),\n new KJUR.asn1.DERInteger({ bigint: this.dmp1 }),\n new KJUR.asn1.DERInteger({ bigint: this.dmq1 }),\n new KJUR.asn1.DERInteger({ bigint: this.coeff })\n ]\n };\n var seq = new KJUR.asn1.DERSequence(options);\n return seq.getEncodedHex();\n };\n JSEncryptRSAKey2.prototype.getPrivateBaseKeyB64 = function() {\n return hex2b64(this.getPrivateBaseKey());\n };\n JSEncryptRSAKey2.prototype.getPublicBaseKey = function() {\n var first_sequence = new KJUR.asn1.DERSequence({\n array: [\n new KJUR.asn1.DERObjectIdentifier({ oid: \"1.2.840.113549.1.1.1\" }),\n // RSA Encryption pkcs #1 oid\n new KJUR.asn1.DERNull()\n ]\n });\n var second_sequence = new KJUR.asn1.DERSequence({\n array: [\n new KJUR.asn1.DERInteger({ bigint: this.n }),\n new KJUR.asn1.DERInteger({ int: this.e })\n ]\n });\n var bit_string = new KJUR.asn1.DERBitString({\n hex: \"00\" + second_sequence.getEncodedHex()\n });\n var seq = new KJUR.asn1.DERSequence({\n array: [first_sequence, bit_string]\n });\n return seq.getEncodedHex();\n };\n JSEncryptRSAKey2.prototype.getPublicBaseKeyB64 = function() {\n return hex2b64(this.getPublicBaseKey());\n };\n JSEncryptRSAKey2.wordwrap = function(str, width) {\n width = width || 64;\n if (!str) {\n return str;\n }\n var regex = \"(.{1,\" + width + \"})( +|$\\n?)|(.{1,\" + width + \"})\";\n return str.match(RegExp(regex, \"g\")).join(\"\\n\");\n };\n JSEncryptRSAKey2.prototype.getPrivateKey = function() {\n var key = \"-----BEGIN RSA PRIVATE KEY-----\\n\";\n key += JSEncryptRSAKey2.wordwrap(this.getPrivateBaseKeyB64()) + \"\\n\";\n key += \"-----END RSA PRIVATE KEY-----\";\n return key;\n };\n JSEncryptRSAKey2.prototype.getPublicKey = function() {\n var key = \"-----BEGIN PUBLIC KEY-----\\n\";\n key += JSEncryptRSAKey2.wordwrap(this.getPublicBaseKeyB64()) + \"\\n\";\n key += \"-----END PUBLIC KEY-----\";\n return key;\n };\n JSEncryptRSAKey2.hasPublicKeyProperty = function(obj) {\n obj = obj || {};\n return obj.hasOwnProperty(\"n\") && obj.hasOwnProperty(\"e\");\n };\n JSEncryptRSAKey2.hasPrivateKeyProperty = function(obj) {\n obj = obj || {};\n return obj.hasOwnProperty(\"n\") && obj.hasOwnProperty(\"e\") && obj.hasOwnProperty(\"d\") && obj.hasOwnProperty(\"p\") && obj.hasOwnProperty(\"q\") && obj.hasOwnProperty(\"dmp1\") && obj.hasOwnProperty(\"dmq1\") && obj.hasOwnProperty(\"coeff\");\n };\n JSEncryptRSAKey2.prototype.parsePropertiesFrom = function(obj) {\n this.n = obj.n;\n this.e = obj.e;\n if (obj.hasOwnProperty(\"d\")) {\n this.d = obj.d;\n this.p = obj.p;\n this.q = obj.q;\n this.dmp1 = obj.dmp1;\n this.dmq1 = obj.dmq1;\n this.coeff = obj.coeff;\n }\n };\n return JSEncryptRSAKey2;\n })(RSAKey)\n);\nvar _a;\nvar version = typeof process !== \"undefined\" ? (_a = import.meta.env) === null || _a === void 0 ? void 0 : _a.npm_package_version : void 0;\nvar JSEncrypt = (\n /** @class */\n (function() {\n function JSEncrypt2(options) {\n if (options === void 0) {\n options = {};\n }\n this.default_key_size = options.default_key_size ? parseInt(options.default_key_size, 10) : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\";\n this.log = options.log || false;\n this.key = options.key || null;\n }\n JSEncrypt2.prototype.setKey = function(key) {\n if (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new JSEncryptRSAKey(key);\n } else if (!this.key && this.log) {\n console.error(\"A key was not set.\");\n }\n };\n JSEncrypt2.prototype.setPrivateKey = function(privkey) {\n this.setKey(privkey);\n };\n JSEncrypt2.prototype.setPublicKey = function(pubkey) {\n this.setKey(pubkey);\n };\n JSEncrypt2.prototype.decrypt = function(str) {\n try {\n return this.getKey().decrypt(b64tohex(str));\n } catch (ex) {\n return false;\n }\n };\n JSEncrypt2.prototype.encrypt = function(str) {\n try {\n return hex2b64(this.getKey().encrypt(str));\n } catch (ex) {\n return false;\n }\n };\n JSEncrypt2.prototype.encryptOAEP = function(str) {\n try {\n return hex2b64(this.getKey().encrypt(str, oaep_pad));\n } catch (ex) {\n return false;\n }\n };\n JSEncrypt2.prototype.sign = function(str, digestMethod, digestName) {\n if (digestMethod === void 0) {\n digestMethod = function(raw) {\n return raw;\n };\n }\n if (digestName === void 0) {\n digestName = \"\";\n }\n try {\n return hex2b64(this.getKey().sign(str, digestMethod, digestName));\n } catch (ex) {\n return false;\n }\n };\n JSEncrypt2.prototype.signSha256 = function(str) {\n return this.sign(str, function(text) {\n return rstr2hex(rstr_sha256(text));\n }, \"sha256\");\n };\n JSEncrypt2.prototype.verify = function(str, signature, digestMethod) {\n if (digestMethod === void 0) {\n digestMethod = function(raw) {\n return raw;\n };\n }\n try {\n return this.getKey().verify(str, b64tohex(signature), digestMethod);\n } catch (ex) {\n return false;\n }\n };\n JSEncrypt2.prototype.verifySha256 = function(str, signature) {\n return this.verify(str, signature, function(text) {\n return rstr2hex(rstr_sha256(text));\n });\n };\n JSEncrypt2.prototype.getKey = function(cb) {\n if (!this.key) {\n this.key = new JSEncryptRSAKey();\n if (cb && {}.toString.call(cb) === \"[object Function]\") {\n this.key.generateAsync(this.default_key_size, this.default_public_exponent, cb);\n return;\n }\n this.key.generate(this.default_key_size, this.default_public_exponent);\n }\n return this.key;\n };\n JSEncrypt2.prototype.getPrivateKey = function() {\n return this.getKey().getPrivateKey();\n };\n JSEncrypt2.prototype.getPrivateKeyB64 = function() {\n return this.getKey().getPrivateBaseKeyB64();\n };\n JSEncrypt2.prototype.getPublicKey = function() {\n return this.getKey().getPublicKey();\n };\n JSEncrypt2.prototype.getPublicKeyB64 = function() {\n return this.getKey().getPublicBaseKeyB64();\n };\n JSEncrypt2.version = version;\n return JSEncrypt2;\n })()\n);\nfunction encrypt(publicKey, txt) {\n const encryptor = new JSEncrypt();\n encryptor.setPublicKey(publicKey);\n return encryptor.encrypt(txt);\n}\nfunction decrypt(privateKey, txt) {\n const encryptor = new JSEncrypt();\n encryptor.setPrivateKey(privateKey);\n return encryptor.decrypt(txt);\n}\nfunction to(promise, errorExt) {\n return promise.then((data) => [null, data]).catch((err) => {\n if (errorExt) {\n const parsedError = { ...err, ...errorExt };\n return [parsedError, void 0];\n }\n return [err ?? true, void 0];\n });\n}\nasync function suspectedWrapperPromise(p) {\n if (isPromise(p)) {\n const [err, res] = await to(p);\n if (err) return [err, void 0];\n return [null, res];\n } else {\n return [null, p];\n }\n}\nfunction waitTime(time) {\n return new Promise((resolve) => {\n setTimeout(resolve, time);\n });\n}\nfunction initialConversion(str, isLowerCase) {\n if (!isLowerCase) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n } else {\n return str.charAt(0).toLowerCase() + str.slice(1);\n }\n}\nfunction camelize(str) {\n return str.replace(/-(\\w)/g, (_, c) => {\n return c ? c.toUpperCase() : \"\";\n });\n}\nfunction kebabCase(str, separator = \"-\") {\n return str.replace(/([A-Z])/g, `${separator}$1`).toLowerCase();\n}\nfunction getUrlParams(url) {\n url = url || window?.location.href;\n const res = {};\n const params = url.match(/([^?=&#]+)=([^?&#]+)/g) || [];\n params.forEach((item) => {\n item = decodeURIComponent(item);\n const index = item.indexOf(\"=\");\n res[item.slice(0, index)] = item.slice(index + 1);\n });\n return res;\n}\nfunction getUrlParam(key, url) {\n url = url || window?.location.href;\n const keyRegx = new RegExp(\"(^|\\\\?|&|#)(?:\" + key + \")=([^&#]*)(&|$)?\");\n const keyRegxResult = url.match(keyRegx);\n return keyRegxResult ? decodeURIComponent(keyRegxResult[2] || \"\") || \"\" : \"\";\n}\nfunction deleteUrlParams(params, url) {\n url = url || window?.location.href;\n const res = url.split(\"?\");\n for (let i = 1; i < res.length; i++) {\n res[i] = `?${res[i]}`;\n params.forEach((item) => {\n const reg = new RegExp(`[?&]${item}=([^&#]*)`, \"i\");\n res[i] = res[i].replace(reg, \"\");\n if (res[i][0] === \"&\") res[i] = res[i].replace(\"&\", \"?\");\n });\n }\n return res.join(\"\");\n}\nfunction setUrlParam(key, value, url, andString, newKey) {\n url = url || window?.location.href;\n const keyRegx = new RegExp(\"(^|\\\\?|&|#)(\" + key + \")=([^&#]*)(&|$)?\");\n const keyRegxResult = url.match(keyRegx);\n const keyName = newKey || (keyRegxResult ? keyRegxResult[2] : key);\n let and = \"&\";\n if (url.indexOf(\"?\") === -1) {\n and = \"?\";\n } else if (andString === \"#\" && url.indexOf(\"#\") === -1) {\n and = \"#\";\n }\n let andtype = \"\";\n let urltmp = \"\";\n if (keyRegxResult) {\n urltmp = url.replace(keyRegx, ($1, $and, $key, $val, $nextAnd) => {\n let result = andtype = $and;\n if (value !== null) {\n if (value === \"undefined\") value = \"\";\n result = (andtype || and) + keyName + \"=\" + value + ($nextAnd || \"\");\n }\n return result;\n });\n } else {\n if (value !== null) {\n if (value === \"undefined\") value = \"\";\n urltmp = url + and + keyName + \"=\" + value;\n } else {\n urltmp = url;\n }\n }\n if (urltmp.indexOf(andtype) === urltmp.length - 1) {\n urltmp = urltmp.substring(0, urltmp.length - 1);\n }\n if (/[\\\\?&#]$/.test(urltmp)) {\n urltmp.substring(0, urltmp.length - 1);\n }\n return urltmp;\n}\nconst validatorRegs = {\n cellPhone: /^1[3-9]\\d{9}$/,\n telephone: /^\\d{7,8}$/,\n url: /^((blob:)*(https|http|ftp|rtsp|mms|wss)?:\\/\\/)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/\n};\nfunction validator(value, type, required = false) {\n if (type === \"empty\") return isEmpty(value);\n const reg = validatorRegs[type];\n if (!reg) throw new Error(`[validator] 没有 ${type} 类型`);\n if (required && isEmpty(value)) return null;\n return reg.test(value);\n}\nfunction useServiceLoadMore({\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n}) {\n const firstLoad = ref(false);\n const manualTriggerLoad = ref(false);\n const dataList = ref([]);\n const {\n data,\n loading,\n loadingMore,\n noMore,\n error,\n refresh,\n refreshAsync,\n cancel,\n loadMore,\n loadMoreAsync,\n mutate\n } = useLoadMore(\n async (params) => {\n const res = { list: [], page: 1, total: 0 };\n const paginationV = unref(pagination);\n const currentParams = paginationV !== false ? {\n pageNum: isEmpty(params?.page) ? 1 : params.page + 1,\n pageSize: params?.size ?? paginationV?.pageSize ?? 30\n } : void 0;\n if (currentParams?.pageNum === 1) firstLoad.value = true;\n let tParams;\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(\n currentParams ? easyCopy(currentParams) : currentParams\n )\n );\n if (tpErr) throw tpErr;\n tParams = tpRes;\n }\n const [serviceErr, serviceRes] = await to(service(tParams || currentParams));\n if (serviceErr) throw serviceErr;\n let temp;\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes));\n if (trErr) throw trErr;\n temp = trRes;\n } else {\n temp = serviceRes;\n }\n if (!temp.records) temp.records = [];\n if (isEmpty(temp.total)) temp.total = temp.records.length;\n if (!paginationV || currentParams?.pageNum === 1) {\n res.list = temp.records;\n } else {\n res.list = res.list.concat(temp.records);\n }\n if (currentParams) {\n res.page = currentParams?.pageNum;\n res.size = currentParams?.pageSize;\n }\n res.total = temp.total;\n return res;\n },\n {\n manual,\n isNoMore: (data2) => {\n if (!data2) return true;\n return isEmpty(data2.total) || data2.list.length >= data2.total;\n },\n onBefore,\n onAfter: () => {\n firstLoad.value = false;\n manualTriggerLoad.value = false;\n onAfter?.();\n },\n onSuccess: (res) => {\n dataList.value = res.list;\n onSuccess?.(res);\n },\n onError\n }\n );\n function reRefresh() {\n manualTriggerLoad.value = true;\n refresh();\n }\n function reRefreshAsync() {\n manualTriggerLoad.value = true;\n return refreshAsync();\n }\n function reLoadMore() {\n manualTriggerLoad.value = true;\n loadMore();\n }\n function reLoadMoreAsync() {\n manualTriggerLoad.value = true;\n return loadMoreAsync();\n }\n return {\n data,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n loadingMore,\n noMore,\n error,\n refresh: reRefresh,\n refreshAsync: reRefreshAsync,\n cancel,\n loadMore: reLoadMore,\n loadMoreAsync: reLoadMoreAsync,\n mutate\n };\n}\nfunction useServicePagination({\n service,\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n}) {\n const firstLoad = ref(false);\n const manualTriggerLoad = ref(false);\n const dataList = ref([]);\n const {\n data,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = usePagination(\n async (params2) => {\n const res = { list: [], page: 1, total: 0 };\n const paginationV = unref(pagination);\n const currentParams = paginationV !== false ? {\n pageNum: params2?.page ?? 1,\n pageSize: params2?.size ?? paginationV?.pageSize ?? 10\n } : void 0;\n if (currentParams?.pageNum === 1) firstLoad.value = true;\n let tParams;\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(\n currentParams ? easyCopy(currentParams) : currentParams\n )\n );\n if (tpErr) throw tpErr;\n tParams = tpRes;\n }\n const [serviceErr, serviceRes] = await to(service(tParams || currentParams));\n if (serviceErr) throw serviceErr;\n let temp;\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes));\n if (trErr) throw trErr;\n temp = trRes;\n } else {\n temp = serviceRes;\n }\n if (!temp.records) temp.records = [];\n if (isEmpty(temp.total)) temp.total = temp.records.length;\n if (!paginationV || currentParams?.pageNum === 1) {\n res.list = temp.records;\n } else {\n res.list = res.list.concat(temp.records);\n }\n if (currentParams) {\n res.page = currentParams?.pageNum;\n res.size = currentParams?.pageSize;\n }\n res.total = temp.total;\n return res;\n },\n {\n manual,\n cacheKey,\n cacheTime,\n pollingInterval,\n pagination: {\n currentKey: \"page\",\n pageSizeKey: \"size\",\n totalKey: \"total\"\n },\n onBefore,\n onAfter: () => {\n firstLoad.value = false;\n manualTriggerLoad.value = false;\n onAfter?.();\n },\n onSuccess: (res) => {\n dataList.value = res.list;\n onSuccess?.(res);\n },\n onError\n }\n );\n function reChangeCurrent(current2) {\n manualTriggerLoad.value = true;\n changeCurrent(current2);\n }\n function reChangePageSize(pageSize2) {\n manualTriggerLoad.value = true;\n changePageSize(pageSize2);\n }\n function reChangePagination(current2, pageSize2) {\n manualTriggerLoad.value = true;\n changePagination(current2, pageSize2);\n }\n function reRefresh() {\n manualTriggerLoad.value = true;\n refresh();\n }\n function reRefreshAsync() {\n manualTriggerLoad.value = true;\n refreshAsync();\n }\n onActivated(() => {\n if (!manual && !isEmpty(unref(pollingInterval))) reRefresh();\n });\n onDeactivated(() => {\n if (!isEmpty(unref(pollingInterval))) cancel();\n });\n onBeforeUnmount(() => {\n if (!isEmpty(unref(pollingInterval))) cancel();\n });\n return {\n data,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n error,\n params,\n current,\n pageSize,\n total,\n totalPage,\n changeCurrent: reChangeCurrent,\n changePageSize: reChangePageSize,\n changePagination: reChangePagination,\n runAsync,\n run,\n cancel,\n refresh: reRefresh,\n refreshAsync: reRefreshAsync,\n mutate\n };\n}\nfunction useActivated() {\n const activated = ref(true);\n onActivated(() => {\n activated.value = true;\n });\n onDeactivated(() => {\n activated.value = false;\n });\n return {\n activated\n };\n}\nfunction useAutofocus() {\n const autofocus = ref(false);\n onMounted(() => {\n autofocus.value = true;\n });\n onActivated(() => {\n autofocus.value = true;\n });\n onDeactivated(() => {\n autofocus.value = false;\n });\n return {\n autofocus\n };\n}\nconst __vite_import_meta_env__ = {};\nconst cslType = [\"log\", \"warn\", \"error\"];\nconst isDev = import.meta.env?.NODE_ENV !== \"production\" || __vite_import_meta_env__ && false;\nfunction useCsl(module) {\n const toStr = (data) => {\n if (typeof data === \"object\") return data.join(\".\");\n if (typeof data === \"number\") return data.toString();\n return data;\n };\n module = toStr(module);\n const getModule = (childModule) => {\n if (isEmpty(childModule)) return `[${module}]`;\n childModule = toStr(childModule);\n if (childModule) childModule = \".\" + childModule;\n return `[${module}${childModule}]`;\n };\n const core2 = (type = \"log\", childModule, ...rest) => {\n if (isEmpty(rest)) {\n console[type](getModule(), childModule);\n return;\n }\n console[type](getModule(childModule), ...rest);\n };\n const csl = {\n useNext(childModule) {\n return useCsl(getModule(childModule).replace(/\\[|\\]/g, \"\"));\n }\n };\n cslType.forEach((item) => {\n const temp = (childModule, ...rest) => {\n core2(item, childModule, ...rest);\n };\n temp.dev = isDev ? temp : noop;\n csl[item] = temp;\n });\n return csl;\n}\nfunction useProxy() {\n const instance = getCurrentInstance();\n if (!instance || !instance.proxy) {\n throw new Error(\"[useProxy] 必须在 setup 或生命周期内调用,并且组件已经挂载\");\n }\n return instance.proxy;\n}\nfunction useTimer(type = \"timeout\") {\n const timer = ref(null);\n const clearTimer = () => {\n if (!timer.value) return;\n switch (type) {\n case \"interval\":\n clearInterval(timer.value);\n break;\n case \"timeout\":\n default:\n clearTimeout(timer.value);\n break;\n }\n timer.value = null;\n };\n onDeactivated(() => {\n clearTimer();\n });\n onBeforeUnmount(() => {\n clearTimer();\n });\n return {\n timer,\n clearTimer\n };\n}\nexport {\n MD5,\n buildTree,\n camelize,\n checkSameObject,\n createEnum,\n cutFileSuffix,\n cutFilename,\n decrypt,\n decryptBase64,\n deleteUrlParams,\n easyCopy,\n easyDownload,\n encrypt,\n encryptBase64,\n encryptWithAes,\n extractSlotsWithPrefix,\n extractSlotsWithoutPrefix,\n filterSlots,\n generateAesKey,\n generateRandomString,\n getUrlParam,\n getUrlParams,\n hasOwn,\n identifyType,\n initialConversion,\n isEmpty,\n isFunction,\n isObject,\n isPromise,\n isTypeByName,\n kebabCase,\n noop,\n objToStr,\n padZero,\n resize,\n resizeDirective,\n setUrlParam,\n suspectedWrapperPromise,\n to,\n toArr,\n toMoney,\n toMoneyTrimmed,\n toMoneyWithK,\n toPrecision,\n toTypeStr,\n useActivated,\n useAutofocus,\n useCsl,\n useProxy,\n useServiceLoadMore,\n useServicePagination,\n useTimer,\n validator,\n validatorRegs,\n valueFillter,\n waitTime\n};\n//# sourceMappingURL=qidian-shared.es.js.map\n","import type { ComputedRef, InjectionKey } from 'vue'\nimport type { QdConfigProviderProps, QdUser } from './types'\nimport type { QdDictBaseOptions } from '../../hooks/useDict/types'\n\nexport const PROVIDE_USER: InjectionKey<QdUser | undefined> = Symbol('QdUser')\nexport const PROVIDE_DICT: InjectionKey<QdDictBaseOptions | undefined> = Symbol('QdDict')\nexport const PROVIDE_UPLOAD: InjectionKey<QdConfigProviderProps['upload']> = Symbol('QdUpload')\nexport const PROVIDE_GLOBAL_CONFIG: InjectionKey<\n ComputedRef<NonNullable<QdConfigProviderProps['globalConfig']>>\n> = Symbol('QdGlobalConfig')\n","import type { PropType } from 'vue'\nimport type { QdConfigProviderProps } from './types'\nimport { defineComponent, provide, h, ref, watchEffect, computed, watch } from 'vue'\nimport { ConfigProvider as TConfigProvider } from 'tdesign-vue-next'\nimport { to } from 'qidian-shared'\nimport { PROVIDE_DICT, PROVIDE_GLOBAL_CONFIG, PROVIDE_UPLOAD, PROVIDE_USER } from './config'\n\nexport const QdConfigProvider = defineComponent({\n name: 'QdConfigProvider',\n props: {\n locale: {\n type: String as PropType<QdConfigProviderProps['locale']>,\n default: 'zh-CN'\n },\n\n user: {\n type: Object as PropType<QdConfigProviderProps['user']>,\n default: undefined\n },\n\n dict: {\n type: Object as PropType<QdConfigProviderProps['dict']>,\n default: undefined\n },\n\n upload: {\n type: Object as PropType<QdConfigProviderProps['upload']>,\n default: undefined\n },\n\n globalConfig: {\n type: Object as PropType<QdConfigProviderProps['globalConfig']>,\n default: undefined\n }\n },\n setup(props: QdConfigProviderProps, { slots }) {\n const qdGlobalConfig = ref()\n const mergedGlobalConfig = computed(() => {\n return {\n ...qdGlobalConfig.value,\n ...props.globalConfig\n }\n })\n\n provide(PROVIDE_USER, props.user)\n provide(PROVIDE_DICT, props.dict)\n provide(PROVIDE_UPLOAD, props.upload)\n provide(PROVIDE_GLOBAL_CONFIG, mergedGlobalConfig)\n\n // 设置全局信息供指令使用\n if (typeof window !== 'undefined') {\n window.__QIDIAN_USER__ = props.user\n window.__QIDIAN_DICT__ = props.dict\n }\n\n // 监听用户变化\n watch(\n () => [props.user, props.dict] as const,\n ([newUser, newDict]) => {\n if (typeof window !== 'undefined') {\n window.__QIDIAN_USER__ = newUser\n window.__QIDIAN_DICT__ = newDict\n }\n }\n )\n\n watchEffect(async () => {\n const localeMap = {\n 'zh-CN': () => import('../../locales/zh-CN'),\n 'zh-TW': () => import('../../locales/zh-TW'),\n 'en-US': () => import('../../locales/en-US')\n }\n\n const loadLocale = localeMap[props.locale as keyof typeof localeMap] || localeMap['zh-CN']\n const [err, res] = await to(\n loadLocale() as unknown as Promise<{\n default: NonNullable<QdConfigProviderProps['globalConfig']>\n }>\n )\n if (err) return\n\n qdGlobalConfig.value = res.default\n })\n\n return () =>\n h(\n TConfigProvider,\n {\n globalConfig: mergedGlobalConfig.value\n },\n slots.default\n )\n }\n})\n","import type { ComputedRef, Ref, WatchHandle } from 'vue'\nimport type { QdComputeFunction, QdAsyncComputeOptions } from './types'\nimport { computed, watch, ref } from 'vue'\nimport { to } from 'qidian-shared'\n\nconst watchHandleMap = new Map<string, WatchHandle>()\n\nexport function qdCompute<T = unknown>(fn: QdComputeFunction<T>) {\n fn.__qdCompute = true\n fn.__qdId = `qd_compute_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`\n return fn\n}\n\nexport function qdAsyncCompute<T = unknown>(options: QdAsyncComputeOptions<T>) {\n options.__qdAsyncCompute = true\n options.__qdId = `qd_async_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`\n return options\n}\n\nexport function qdUseComputeValue<T = unknown>(\n computeFn: QdComputeFunction<T> | QdAsyncComputeOptions<T>,\n context: Ref<Record<string, unknown>> | ComputedRef<Record<string, unknown>>\n) {\n const computeId = computeFn.__qdId\n if (!computeId) {\n throw new Error('[configRenderer.qdUseComputeValue] 计算函数必须具有 ID')\n }\n\n watchHandleMap.get(computeId)?.()\n let watchHandle: WatchHandle | undefined\n const result = ref<T>() as Ref<T>\n const loading = ref(false)\n\n if ('__qdCompute' in computeFn) {\n watchHandle = watch(\n context,\n (newValue) => {\n result.value = computeFn(newValue)\n },\n { immediate: true, deep: true }\n )\n } else {\n // qdAsyncCompute\n const asyncCompute = computeFn as QdAsyncComputeOptions<T>\n const { asyncFn, watch: watchFn } = asyncCompute\n\n if (watchFn) {\n // 有 watch 监听\n const watchValue = computed(() => watchFn(context.value))\n\n watchHandle = watch(\n watchValue,\n async (newValue: unknown) => {\n loading.value = true\n try {\n result.value = await asyncFn(newValue, context.value)\n } finally {\n loading.value = false\n }\n },\n { immediate: true }\n )\n } else {\n // 只执行一次\n loading.value = true\n ;(async () => {\n const watchValue = context.value\n\n const [asyncErr, value] = await to(asyncFn(watchValue, context.value))\n loading.value = false\n if (asyncErr) return asyncErr\n\n result.value = value\n })()\n }\n }\n\n if (watchHandle) watchHandleMap.set(computeId, watchHandle)\n const res = { result, loading }\n\n return res\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import { get, set } from 'lodash-es'\n\nexport interface VModelPath {\n path: string\n keys: string[]\n}\n\nexport function parseVModelPath(path: string): VModelPath {\n return {\n path,\n keys: path.split('.')\n }\n}\n\nexport function getValueByPath(obj: Record<string, unknown>, path: string): unknown {\n return get(obj, path)\n}\n\nexport function setValueByPath(obj: Record<string, unknown>, path: string, value: unknown): void {\n set(obj, path, value)\n}\n\nexport function createVModelBinding(\n context: Record<string, unknown>,\n vModelPath?: string,\n defaultValue?: unknown\n) {\n if (!vModelPath) {\n return {\n modelValue: defaultValue,\n 'onUpdate:modelValue': undefined\n }\n }\n\n const currentValue = getValueByPath(context, vModelPath)\n\n // 如果 context 中没有值,则初始化为默认值\n if (currentValue === undefined && defaultValue !== undefined) {\n setValueByPath(context, vModelPath, defaultValue)\n }\n\n return {\n modelValue: currentValue !== undefined ? currentValue : defaultValue,\n 'onUpdate:modelValue': (value: unknown) => {\n setValueByPath(context, vModelPath, value)\n }\n }\n}\n\nexport function resolveVModelBinding(\n context: Record<string, unknown>,\n vModel?: string,\n defaultValue?: unknown\n) {\n const bindings: Record<string, unknown> = {}\n\n if (vModel) {\n const vModelBinding = createVModelBinding(context, vModel, defaultValue)\n bindings.modelValue = vModelBinding.modelValue\n bindings['onUpdate:modelValue'] = vModelBinding['onUpdate:modelValue']\n }\n\n return bindings\n}\n","<template>\n <component\n :is=\"resolvedComponent\"\n v-bind=\"componentProps\"\n v-if=\"shouldRender\"\n v-show=\"shouldShow\"\n >\n <template\n v-for=\"(slotConfig, slotName) in config.slots\"\n :key=\"slotName\"\n #[slotName]=\"slotProps\"\n >\n <qd-config-renderer\n v-if=\"slotConfig\"\n :config=\"slotConfig\"\n :context=\"slotConfig.context || currentContext\"\n v-bind=\"slotProps\"\n />\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdConfigRendererProps, QdComputeFunction, QdAsyncComputeOptions } from './types'\n import { computed, resolveComponent, h } from 'vue'\n import { qdUseComputeValue } from './compute'\n import { resolveVModelBinding } from './utils'\n import QdConfigRenderer from './index.vue'\n\n defineOptions({\n name: 'QdConfigRenderer'\n })\n\n const props = withDefaults(defineProps<QdConfigRendererProps>(), {})\n\n const currentContext = computed(() => props.config.context || props.context || {})\n\n // 处理 vIf 和 vShow\n const vIfValue = computed(() => {\n const vIf = props.config.vIf\n if (vIf === undefined) return true\n\n if (\n (vIf as QdComputeFunction<boolean>)?.__qdCompute ||\n (vIf as QdAsyncComputeOptions<boolean>)?.__qdAsyncCompute\n ) {\n const { result } = qdUseComputeValue(\n vIf as QdComputeFunction<boolean> | QdAsyncComputeOptions<boolean>,\n currentContext\n )\n return result.value\n }\n\n return vIf as boolean\n })\n\n const vShowValue = computed(() => {\n const vShow = props.config.vShow\n if (vShow === undefined) return true\n\n if (\n (vShow as QdComputeFunction<boolean>)?.__qdCompute ||\n (vShow as QdAsyncComputeOptions<boolean>)?.__qdAsyncCompute\n ) {\n const { result } = qdUseComputeValue(\n vShow as QdComputeFunction<boolean> | QdAsyncComputeOptions<boolean>,\n currentContext\n )\n return result.value\n }\n\n return vShow as boolean\n })\n\n const shouldRender = computed(() => {\n const value = vIfValue.value\n return value !== false && value !== null && value !== undefined\n })\n\n const shouldShow = computed(() => {\n const value = vShowValue.value\n return value !== false && value !== null && value !== undefined\n })\n\n // 解析组件\n const resolvedComponent = computed(() => {\n const { is, render } = props.config\n\n // 优先使用 render 函数\n if (render) {\n return () => render(h, currentContext.value)\n }\n\n if (!is) return 'div'\n\n if (typeof is === 'string') {\n // 对于原生 HTML 标签(小写),直接返回\n if (is === is.toLowerCase()) {\n return is\n }\n\n // 尝试解析为注册的组件\n const resolved = resolveComponent(is)\n if (resolved !== is) return resolved\n return is\n }\n\n return is\n })\n\n // 处理动态属性\n const componentProps = computed(() => {\n const config = props.config\n const componentProps: Record<string, unknown> = {}\n\n // 处理 vModel 开头的属性\n Object.entries(config).forEach(([key, value]) => {\n if (key.startsWith('vModel') && typeof value === 'string') {\n const propName = key.slice(6) // 移除 'vModel' 前缀\n // 获取对应的默认值,比如 vModel -> defaultModelValue, vModelValue -> defaultValue\n const defaultKey =\n 'default' +\n (key === 'vModel' ? 'ModelValue' : propName.charAt(0).toUpperCase() + key.slice(7))\n const defaultValue = config[defaultKey]\n const vModelBinding = resolveVModelBinding(currentContext.value, value, defaultValue)\n\n if (key === 'vModel') {\n componentProps.modelValue = vModelBinding.modelValue\n componentProps['onUpdate:modelValue'] = vModelBinding['onUpdate:modelValue']\n } else {\n // 处理其他 vModel 属性,如 vModelValue -> value\n const lowerFirst = propName.charAt(0).toLowerCase() + propName.slice(1)\n componentProps[lowerFirst] = vModelBinding.modelValue\n componentProps[`onUpdate:${lowerFirst}`] = vModelBinding['onUpdate:modelValue']\n }\n }\n })\n\n // 处理其他属性\n Object.entries(config).forEach(([key, value]) => {\n if (['is', 'context', 'slots', 'vIf', 'vShow'].includes(key)) return\n if (key.startsWith('vModel')) return\n\n // 检查是否为 vModel 对应的默认值配置\n if (key.startsWith('default')) {\n // 反向查找对应的 vModelKey\n const propName = key.slice(7) // 移除 'default' 前缀\n const vModelKey =\n 'vModel' +\n (propName === 'ModelValue' ? '' : propName.charAt(0).toUpperCase() + propName.slice(1))\n if (config[vModelKey]) return // 只有当存在对应的 vModel 配置时才跳过\n }\n\n // 处理动态计算的值\n if (\n (value as QdComputeFunction)?.__qdCompute ||\n (value as QdAsyncComputeOptions)?.__qdAsyncCompute\n ) {\n const { result } = qdUseComputeValue(\n value as QdComputeFunction | QdAsyncComputeOptions,\n currentContext\n )\n componentProps[key] = result.value\n } /* else if (typeof value === 'function' && key.startsWith('on')) {\n // 处理事件处理函数,自动注入 context\n componentProps[key] = (...args: unknown[]) => {\n return value(currentContext.value, ...args)\n }\n }*/ else {\n componentProps[key] = value\n }\n })\n\n return componentProps\n })\n</script>\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get$1 = typeof fn === \"function\" ? fn : fn.get;\n\tconst set$1 = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get$1(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v$1) {\n\t\t\t\tset$1 === null || set$1 === void 0 || set$1(v$1);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n\n//#endregion\n//#region createInjectionState/index.ts\n/**\n* Create global state that can be injected into components.\n*\n* @see https://vueuse.org/createInjectionState\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef<number>\n* @example createRef(1, false) // ShallowRef<number>\n* @example createRef(1, true) // Ref<number>\n* @example createRef(\"string\") // ShallowRef<string>\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && ((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n\n//#endregion\n//#region utils/filters.ts\n/**\n* @internal\n*/\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\treturn wrapper;\n}\nconst bypassFilter = (invoke$1) => {\n\treturn invoke$1();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tconst _clearTimeout = (timer$1) => {\n\t\tclearTimeout(timer$1);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst filter = (invoke$1) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\treturn Promise.resolve(invoke$1());\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastInvoker = invoke$1;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(invoke$1());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn filter;\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke$1 = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke$1();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke$1();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke$1());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(() => reject(reason), ms);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref$1, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref$1, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref$1, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref$1;\n}\n\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounce, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref$1 = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get$1();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset$1(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get$1(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set$1(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set$1(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set$1(v, false);\n\treturn extendRef(ref$1, {\n\t\tget: get$1,\n\t\tset: set$1,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref$1, value] = args;\n\t\tref$1.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\n//#endregion\n//#region watchPausable/index.ts\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\",...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated use `watchPausable` instead */\nconst pausableWatch = watchPausable;\n\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(pausableWatch(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(pausableWatch(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value$1) => element[key] === toValue(value$1);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value$1) => element === toValue(value$1));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get$1 = () => count.value;\n\tconst set$1 = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set$1(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget: get$1,\n\t\tset: set$1,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_$1, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count,...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res$1;\n\t\tignoreUpdates(() => {\n\t\t\tres$1 = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res$1;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\n//#endregion\n//#region whenever/index.ts\n/**\n* Shorthand for watching value to be truthy\n*\n* @see https://vueuse.org/whenever\n*/\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, getCurrentScope, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\n\nexport * from \"@vueuse/shared\"\n\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({ setup(_, { slots }) {\n\t\treturn () => {\n\t\t\trender.value = slots.default;\n\t\t};\n\t} });\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index$1 = instances.value.indexOf(props);\n\t\t\tif (index$1 !== -1) instances.value.splice(index$1, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst cleanups = [];\n\tconst cleanup = () => {\n\t\tcleanups.forEach((fn) => fn());\n\t\tcleanups.length = 0;\n\t};\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\tconst stopWatch = watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options]) => {\n\t\tcleanup();\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tcleanups.push(...raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone)))));\n\t}, { flush: \"post\" });\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(cleanup);\n\treturn stop;\n}\n\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window: window$1 = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window$1) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window$1.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow$1.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target$1) => {\n\t\t\tif (typeof target$1 === \"string\") return Array.from(window$1.document.querySelectorAll(target$1)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target$1);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target$1) {\n\t\tconst vm = toValue(target$1);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target$1, event) {\n\t\tconst vm = toValue(target$1);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window$1, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window$1, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window$1, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tvar _window$document$acti;\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tif (((_window$document$acti = window$1.document.activeElement) === null || _window$document$acti === void 0 ? void 0 : _window$document$acti.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window$1.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"MutationObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow, document: document$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.document, flush = \"sync\" } = options;\n\tif (!window$1 || !document$1) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document$1, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow: window$1,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(event)) callback(event);\n\t};\n\tif (document$1) useEventListener(document$1, \"keydown\", keydown, { passive: true });\n}\n\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window: window$1 = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document$1 = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window$1 === null || window$1 === void 0 ? void 0 : window$1.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document$1 === null || document$1 === void 0 ? void 0 : document$1.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window$1, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document: document$1 });\n\ttrigger();\n\treturn activeElement;\n}\n\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = void 0, window: window$1 = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\treturn fpsLimit ? 1e3 / toValue(fpsLimit) : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp$1) {\n\t\tif (!isActive.value || !window$1) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp$1;\n\t\tconst delta = timestamp$1 - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp$1;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp: timestamp$1\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window$1.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window$1) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window$1) {\n\t\t\twindow$1.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window: window$1 = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window$1) window$1.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay$1 = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay$1 > 0) await promiseTimeout(delay$1);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t\treturn state.value;\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst events$1 = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getBattery\" in navigator$1 && typeof navigator$1.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator$1.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events$1, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"bluetooth\" in navigator$1);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: readonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window: window$1 = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"matchMedia\" in window$1 && typeof window$1.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tmatches.value = toValue(query).split(\",\").some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window$1.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue$1(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window: window$1 = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window$1);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window$1) return false;\n\t\treturn window$1.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue$1(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(a)}) and (max-width: ${getValue$1(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue$1(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue$1(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue$1(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue$1(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue$1(a)) && match(\"max\", getValue$1(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"BroadcastChannel\" in window$1);\n\tconst isClosed = shallowRef(false);\n\tconst channel = ref();\n\tconst data = ref();\n\tconst error = shallowRef(null);\n\tconst post = (data$1) => {\n\t\tif (channel.value) channel.value.postMessage(data$1);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tfor (const [key, ref$1] of objectEntries(refs)) watch(ref$1, (value) => {\n\t\tif (!(window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || window$1.location[key] === value) return;\n\t\twindow$1.location[key] = value;\n\t});\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state: state$1, length } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.history) || {};\n\t\tconst { origin } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window$1 === null || window$1 === void 0 || (_window$location = window$1.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate: state$1,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window$1, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (a, b) => a === b, options) {\n\tconst { deepRefs = true,...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"permissions\" in navigator$1);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator$1.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator$1.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tawait navigator$1.clipboard.writeText(value);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) legacyCopy(value);\n\t\t\ttext.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tisSupported,\n\t\ttext: readonly(text),\n\t\tcopied: readonly(copied),\n\t\tcopy\n\t};\n}\n\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst content = ref([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator$1.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator$1.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: readonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults$1, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults$1 === \"function\" ? defaults$1() : defaults$1);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults$1);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window$1 && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window$1, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window$1, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window$1) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow$1.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window: window$1 = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window: window$1 });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow: window$1,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector$1, attribute$1, value) => {\n\t\tconst el = typeof selector$1 === \"string\" ? window$1 === null || window$1 === void 0 ? void 0 : window$1.document.querySelector(selector$1) : unrefElement(selector$1);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute$1 === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute$1,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window$1.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow$1.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow$1.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n\n//#endregion\n//#region useCountdown/index.ts\n/**\n* Wrapper for `useIntervalFn` that provides a countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options) {\n\tvar _options$interval, _options$immediate;\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst intervalController = useIntervalFn(() => {\n\t\tvar _options$onTick;\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\toptions === null || options === void 0 || (_options$onTick = options.onTick) === null || _options$onTick === void 0 || _options$onTick.call(options);\n\t\tif (remaining.value <= 0) {\n\t\t\tvar _options$onComplete;\n\t\t\tintervalController.pause();\n\t\t\toptions === null || options === void 0 || (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);\n\t\t}\n\t}, (_options$interval = options === null || options === void 0 ? void 0 : options.interval) !== null && _options$interval !== void 0 ? _options$interval : 1e3, { immediate: (_options$immediate = options === null || options === void 0 ? void 0 : options.immediate) !== null && _options$immediate !== void 0 ? _options$immediate : false });\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tintervalController.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!intervalController.isActive.value) {\n\t\t\tif (remaining.value > 0) intervalController.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tintervalController.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: intervalController.pause,\n\t\tresume,\n\t\tisActive: intervalController.isActive\n\t};\n}\n\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window: window$1 = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window$1 === null || window$1 === void 0 || (_window$document = window$1.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window$1 && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tvariable.value = ((_window$getComputedSt = window$1.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow: window$1\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index$1 = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index$1 < 0) index$1 = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index$1;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode$1, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode$1 === \"dark\", defaultHandler, mode$1);\n\t\t\telse defaultHandler(mode$1);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source$1, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource$1.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window$1) useEventListener(window$1, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"DeviceOrientationEvent\" in window$1);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window$1 && isSupported.value) useEventListener(window$1, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window$1) stop = watchImmediate(query, () => pixelRatio.value = window$1.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: readonly(pixelRatio),\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated: onUpdated$1 } = options;\n\tconst devices = ref([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && navigator$1.mediaDevices && navigator$1.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator$1.mediaDevices.enumerateDevices();\n\t\tonUpdated$1 === null || onUpdated$1 === void 0 || onUpdated$1(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator$1.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator$1.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator$1.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tif (!document$1) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document$1.visibilityState);\n\tuseEventListener(document$1, \"visibilitychange\", () => {\n\t\tvisibility.value = document$1.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n\n//#endregion\n//#region useDraggable/index.ts\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue;\n\tconst { pointerTypes, preventDefault: preventDefault$1, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0] } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault$1)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault$1)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, \"pointerup\", end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n\t};\n}\n\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tconst dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"ResizeObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window$1) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n\n//#endregion\n//#region useElementByPoint/index.ts\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document: document$1 = defaultDocument, multiple, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document$1 && \"elementsFromPoint\" in document$1;\n\t\treturn document$1 && \"elementFromPoint\" in document$1;\n\t});\n\tconst element = shallowRef(null);\n\tconst cb = () => {\n\t\tvar _document$elementsFro, _document$elementFrom;\n\t\telement.value = toValue(multiple) ? (_document$elementsFro = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t};\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate })\n\t};\n}\n\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window: window$1 = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window$1) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window: window$1 = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window$1 && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects that a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin = \"0px\", threshold = 0, window: window$1 = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"IntersectionObserver\" in window$1);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\tisActive.value\n\t], ([targets$1, root$1]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets$1.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root$1),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets$1.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementVisibility/index.ts\n/**\n* Tracks the visibility of an element within the viewport.\n*\n* @see https://vueuse.org/useElementVisibility\n*/\nfunction useElementVisibility(element, options = {}) {\n\tconst { window: window$1 = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false } = options;\n\tconst elementIsVisible = shallowRef(false);\n\tconst { stop } = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = elementIsVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\telementIsVisible.value = isIntersecting;\n\t\tif (once) watchOnce(elementIsVisible, () => {\n\t\t\tstop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow: window$1,\n\t\tthreshold,\n\t\trootMargin: toValue(rootMargin)\n\t});\n\treturn elementIsVisible;\n}\n\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events$1 = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = ref(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events$1) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document: document$1 = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document$1 === null || document$1 === void 0 ? void 0 : document$1.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document$1 === null || document$1 === void 0 ? void 0 : document$1.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument$1 === null || document$1 === void 0 || document$1.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: readonly(isFinished),\n\t\tisFetching: readonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 ? document$1.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tfiles.value = event.target.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options$1) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options$1.multiple);\n\t\tel.accept = toValue(options$1.accept);\n\t\tel.webkitdirectory = toValue(options$1.directory);\n\t\tif (hasOwn(options$1, \"capture\")) el.capture = toValue(options$1.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window$1 = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"showSaveFilePicker\" in window$1 && \"showOpenFilePicker\" in window$1);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window$1.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window$1 || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document: document$1 = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 === null || document$1 === void 0 ? void 0 : document$1.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document$1 && m in document$1);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document$1 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document$1 === null || document$1 === void 0 ? void 0 : document$1[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document$1 && document$1[fullscreenEnabled.value] != null) return document$1[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[fullscreenEnabled.value]) != null) return Boolean(target$1[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document$1 === null || document$1 === void 0 ? void 0 : document$1[exitMethod.value]) != null) await document$1[exitMethod.value]();\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[exitMethod.value]) != null) await target$1[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target$1 = targetRef.value;\n\t\tif (requestMethod.value && (target$1 === null || target$1 === void 0 ? void 0 : target$1[requestMethod.value]) != null) {\n\t\t\tawait target$1[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document$1, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getGamepads\" in navigator$1);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator: navigator$1 = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"geolocation\" in navigator$1);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = ref({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator$1.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator$1) navigator$1.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events: events$1 = defaultEvents$1, window: window$1 = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events$1) useEventListener(window$1, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document$1, \"visibilitychange\", () => {\n\t\t\tif (document$1.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the <img> tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window: window$1 = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x$1) {\n\t\t\tscrollTo(x$1, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y$1) {\n\t\t\tscrollTo(void 0, y$1);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window$1) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window$1.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window$1) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window$1.document && !scrollTop) scrollTop = window$1.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window$1) return;\n\t\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window$1 && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window$1 && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = ref();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value)) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) {\n\t\t\tif (!promise.value) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\t\tpromise.value = null;\n\t\t\t\tnextTick(() => checkAndLoad());\n\t\t\t});\n\t\t}\n\t}\n\ttryOnUnmounted(watch(() => [state.arrivedState[direction], isElementVisible.value], checkAndLoad, { immediate: true }));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events: events$1 = defaultEvents, document: document$1 = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document$1) events$1.forEach((listenerEvent) => {\n\t\tuseEventListener(document$1, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.localStorage, options);\n}\n\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n\n//#endregion\n//#region useMagicKeys/index.ts\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys$1) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys$1.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key$1, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key$1 of values) {\n\t\t\tusedKeys.add(key$1);\n\t\t\tsetRefs(key$1, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key$1) => {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target$1, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target$1, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys$1 = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys$1.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target$1, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = ref([]);\n\tconst tracks = ref([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = document$1 && \"pictureInPictureEnabled\" in document$1;\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document$1.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `<source>` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src: src$1, type, media }) => {\n\t\t\tconst source = document$1.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src$1);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document$1.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n\n//#endregion\n//#region useMemory/index.ts\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = ref();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { interval = 1e3 } = options;\n\t\tuseIntervalFn(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t}, interval, {\n\t\t\timmediate: options.immediate,\n\t\t\timmediateCallback: options.immediateCallback\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window: window$1 = defaultWindow, target = window$1, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window$1) {\n\t\t\t_prevScrollX = window$1.scrollX;\n\t\t\t_prevScrollY = window$1.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window$1) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window$1.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window$1.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window$1, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window: window$1 = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window$1 === null || window$1 === void 0 ? void 0 : window$1.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window$1) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tconst { left, top, width, height } = el.getBoundingClientRect();\n\t\telementPositionX.value = left + (type === \"page\" ? window$1.pageXOffset : 0);\n\t\telementPositionY.value = top + (type === \"page\" ? window$1.pageYOffset : 0);\n\t\telementHeight.value = height;\n\t\telementWidth.value = width;\n\t\tconst elX = x.value - elementPositionX.value;\n\t\tconst elY = y.value - elementPositionY.value;\n\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\tif (handleOutside || !isOutside.value) {\n\t\t\telementX.value = elX;\n\t\t\telementY.value = elY;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window$1) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window: window$1 = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window$1) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window$1);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window$1, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window$1, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window$1, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window$1, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"language\" in navigator$1);\n\tconst language = shallowRef(navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.language);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tif (navigator$1) language.value = navigator$1.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"connection\" in navigator$1);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator$1.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator$1) return;\n\t\tisOnline.value = navigator$1.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window$1) {\n\t\tuseEventListener(window$1, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: readonly(isOnline),\n\t\tsaveData: readonly(saveData),\n\t\tofflineAt: readonly(offlineAt),\n\t\tonlineAt: readonly(onlineAt),\n\t\tdownlink: readonly(downlink),\n\t\tdownlinkMax: readonly(downlinkMax),\n\t\teffectiveType: readonly(effectiveType),\n\t\trtt: readonly(rtt),\n\t\ttype: readonly(type)\n\t};\n}\n\n//#endregion\n//#region useNow/index.ts\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst now = ref(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate }) : useIntervalFn(update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn readonly(url);\n}\n\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value$1) {\n\t\t\t_value.value = clamp(value$1, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window$1) return;\n\t\tevent = event || window$1.event;\n\t\tisLeft.value = !(event.relatedTarget || event.toElement);\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"screen\" in window$1 && \"orientation\" in window$1.screen);\n\tconst screenOrientation = isSupported.value ? window$1.screen.orientation : {};\n\tconst orientation = ref(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window$1, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window: window$1 = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window: window$1 }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window: window$1 }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow: window$1\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else return mouseTiltAdjust((x.value - width.value / 2) / width.value);\n\t\t}),\n\t\tsource\n\t};\n}\n\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window: window$1 = defaultWindow, immediate = true,...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"PerformanceObserver\" in window$1);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document$1 && \"pointerLockElement\" in document$1);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document$1, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document$1.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document$1.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document$1, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document$1.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document$1.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument$1.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointerup\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: readonly(isSwiping),\n\t\tdirection: readonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef([\"en\"]);\n\tconst navigator$1 = window$1.navigator;\n\tconst value = shallowRef(navigator$1.languages);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tvalue.value = navigator$1.languages;\n\t}, { passive: true });\n\treturn value;\n}\n\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document: document$1 = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the <script> attribute, or right after appending it to the DOM.\n\t* @returns Promise<HTMLScriptElement>\n\t*/\n\tconst loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n\t\tconst resolveWithElement = (el$1) => {\n\t\t\tscriptTag.value = el$1;\n\t\t\tresolve(el$1);\n\t\t\treturn el$1;\n\t\t};\n\t\tif (!document$1) {\n\t\t\tresolve(false);\n\t\t\treturn;\n\t\t}\n\t\tlet shouldAppend = false;\n\t\tlet el = document$1.querySelector(`script[src=\"${toValue(src)}\"]`);\n\t\tif (!el) {\n\t\t\tel = document$1.createElement(\"script\");\n\t\t\tel.type = type;\n\t\t\tel.async = async;\n\t\t\tel.src = toValue(src);\n\t\t\tif (defer) el.defer = defer;\n\t\t\tif (crossOrigin) el.crossOrigin = crossOrigin;\n\t\t\tif (noModule) el.noModule = noModule;\n\t\t\tif (referrerPolicy) el.referrerPolicy = referrerPolicy;\n\t\t\tif (nonce) el.nonce = nonce;\n\t\t\tObject.entries(attrs).forEach(([name, value]) => el === null || el === void 0 ? void 0 : el.setAttribute(name, value));\n\t\t\tshouldAppend = true;\n\t\t} else if (el.hasAttribute(\"data-loaded\")) resolveWithElement(el);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(el, \"error\", (event) => reject(event), listenerOptions);\n\t\tuseEventListener(el, \"abort\", (event) => reject(event), listenerOptions);\n\t\tuseEventListener(el, \"load\", () => {\n\t\t\tel.setAttribute(\"data-loaded\", \"true\");\n\t\t\tonLoaded(el);\n\t\t\tresolveWithElement(el);\n\t\t}, listenerOptions);\n\t\tif (shouldAppend) el = document$1.head.appendChild(el);\n\t\tif (!waitForScriptLoad) resolveWithElement(el);\n\t});\n\t/**\n\t* Exposed singleton wrapper for `loadScript`, avoiding calling it twice.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the <script> attribute, or right after appending it to the DOM.\n\t* @returns Promise<HTMLScriptElement>\n\t*/\n\tconst load = (waitForScriptLoad = true) => {\n\t\tif (!_promise) _promise = loadScript(waitForScriptLoad);\n\t\treturn _promise;\n\t};\n\t/**\n\t* Unload the script specified by `src`.\n\t*/\n\tconst unload = () => {\n\t\tif (!document$1) return;\n\t\t_promise = null;\n\t\tif (scriptTag.value) scriptTag.value = null;\n\t\tconst el = document$1.querySelector(`script[src=\"${toValue(src)}\"]`);\n\t\tif (el) document$1.head.removeChild(el);\n\t};\n\tif (immediate && !manual) tryOnMounted(load);\n\tif (!manual) tryOnUnmounted(unload);\n\treturn {\n\t\tscriptTag,\n\t\tload,\n\t\tunload\n\t};\n}\n\n//#endregion\n//#region useScrollLock/index.ts\nfunction checkOverflowScroll(ele) {\n\tconst style = window.getComputedStyle(ele);\n\tif (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) return true;\n\telse {\n\t\tconst parent = ele.parentNode;\n\t\tif (!parent || parent.tagName === \"BODY\") return false;\n\t\treturn checkOverflowScroll(parent);\n\t}\n}\nfunction preventDefault(rawEvent) {\n\tconst e = rawEvent || window.event;\n\tconst _target = e.target;\n\tif (checkOverflowScroll(_target)) return false;\n\tif (e.touches.length > 1) return true;\n\tif (e.preventDefault) e.preventDefault();\n\treturn false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\n/**\n* Lock scrolling of the element.\n*\n* @see https://vueuse.org/useScrollLock\n* @param element\n*/\nfunction useScrollLock(element, initialState = false) {\n\tconst isLocked = shallowRef(initialState);\n\tlet stopTouchMoveListener = null;\n\tlet initialOverflow = \"\";\n\twatch(toRef(element), (el) => {\n\t\tconst target = resolveElement(toValue(el));\n\t\tif (target) {\n\t\t\tconst ele = target;\n\t\t\tif (!elInitialOverflow.get(ele)) elInitialOverflow.set(ele, ele.style.overflow);\n\t\t\tif (ele.style.overflow !== \"hidden\") initialOverflow = ele.style.overflow;\n\t\t\tif (ele.style.overflow === \"hidden\") return isLocked.value = true;\n\t\t\tif (isLocked.value) return ele.style.overflow = \"hidden\";\n\t\t}\n\t}, { immediate: true });\n\tconst lock = () => {\n\t\tconst el = resolveElement(toValue(element));\n\t\tif (!el || isLocked.value) return;\n\t\tif (isIOS) stopTouchMoveListener = useEventListener(el, \"touchmove\", (e) => {\n\t\t\tpreventDefault(e);\n\t\t}, { passive: false });\n\t\tel.style.overflow = \"hidden\";\n\t\tisLocked.value = true;\n\t};\n\tconst unlock = () => {\n\t\tconst el = resolveElement(toValue(element));\n\t\tif (!el || !isLocked.value) return;\n\t\tif (isIOS) stopTouchMoveListener === null || stopTouchMoveListener === void 0 || stopTouchMoveListener();\n\t\tel.style.overflow = initialOverflow;\n\t\telInitialOverflow.delete(el);\n\t\tisLocked.value = false;\n\t};\n\ttryOnScopeDispose(unlock);\n\treturn computed({\n\t\tget() {\n\t\t\treturn isLocked.value;\n\t\t},\n\t\tset(v) {\n\t\t\tif (v) lock();\n\t\t\telse unlock();\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useSessionStorage/index.ts\n/**\n* Reactive SessionStorage.\n*\n* @see https://vueuse.org/useSessionStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useSessionStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.sessionStorage, options);\n}\n\n//#endregion\n//#region useShare/index.ts\n/**\n* Reactive Web Share API.\n*\n* @see https://vueuse.org/useShare\n* @param shareOptions\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useShare(shareOptions = {}, options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst _navigator = navigator$1;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => _navigator && \"canShare\" in _navigator);\n\tconst share = async (overrideOptions = {}) => {\n\t\tif (isSupported.value) {\n\t\t\tconst data = {\n\t\t\t\t...toValue(shareOptions),\n\t\t\t\t...toValue(overrideOptions)\n\t\t\t};\n\t\t\tlet granted = false;\n\t\t\tif (_navigator.canShare) granted = _navigator.canShare(data);\n\t\t\tif (granted) return _navigator.share(data);\n\t\t}\n\t};\n\treturn {\n\t\tisSupported,\n\t\tshare\n\t};\n}\n\n//#endregion\n//#region useSorted/index.ts\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n\tconst [source] = args;\n\tlet compareFn = defaultCompare;\n\tlet options = {};\n\tif (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tvar _options$compareFn;\n\t\toptions = args[1];\n\t\tcompareFn = (_options$compareFn = options.compareFn) !== null && _options$compareFn !== void 0 ? _options$compareFn : defaultCompare;\n\t} else {\n\t\tvar _args$;\n\t\tcompareFn = (_args$ = args[1]) !== null && _args$ !== void 0 ? _args$ : defaultCompare;\n\t}\n\telse if (args.length > 2) {\n\t\tvar _args$2, _args$3;\n\t\tcompareFn = (_args$2 = args[1]) !== null && _args$2 !== void 0 ? _args$2 : defaultCompare;\n\t\toptions = (_args$3 = args[2]) !== null && _args$3 !== void 0 ? _args$3 : {};\n\t}\n\tconst { dirty = false, sortFn = defaultSortFn } = options;\n\tif (!dirty) return computed(() => sortFn([...toValue(source)], compareFn));\n\twatchEffect(() => {\n\t\tconst result = sortFn(toValue(source), compareFn);\n\t\tif (isRef(source)) source.value = result;\n\t\telse source.splice(0, source.length, ...result);\n\t});\n\treturn source;\n}\n\n//#endregion\n//#region useSpeechRecognition/index.ts\n/**\n* Reactive SpeechRecognition.\n*\n* @see https://vueuse.org/useSpeechRecognition\n* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition SpeechRecognition\n* @param options\n*/\nfunction useSpeechRecognition(options = {}) {\n\tconst { interimResults = true, continuous = true, maxAlternatives = 1, window: window$1 = defaultWindow } = options;\n\tconst lang = toRef(options.lang || \"en-US\");\n\tconst isListening = shallowRef(false);\n\tconst isFinal = shallowRef(false);\n\tconst result = shallowRef(\"\");\n\tconst error = shallowRef(void 0);\n\tlet recognition;\n\tconst start = () => {\n\t\tisListening.value = true;\n\t};\n\tconst stop = () => {\n\t\tisListening.value = false;\n\t};\n\tconst toggle = (value = !isListening.value) => {\n\t\tif (value) start();\n\t\telse stop();\n\t};\n\tconst SpeechRecognition = window$1 && (window$1.SpeechRecognition || window$1.webkitSpeechRecognition);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => SpeechRecognition);\n\tif (isSupported.value) {\n\t\trecognition = new SpeechRecognition();\n\t\trecognition.continuous = continuous;\n\t\trecognition.interimResults = interimResults;\n\t\trecognition.lang = toValue(lang);\n\t\trecognition.maxAlternatives = maxAlternatives;\n\t\trecognition.onstart = () => {\n\t\t\tisListening.value = true;\n\t\t\tisFinal.value = false;\n\t\t};\n\t\twatch(lang, (lang$1) => {\n\t\t\tif (recognition && !isListening.value) recognition.lang = lang$1;\n\t\t});\n\t\trecognition.onresult = (event) => {\n\t\t\tconst currentResult = event.results[event.resultIndex];\n\t\t\tconst { transcript } = currentResult[0];\n\t\t\tisFinal.value = currentResult.isFinal;\n\t\t\tresult.value = transcript;\n\t\t\terror.value = void 0;\n\t\t};\n\t\trecognition.onerror = (event) => {\n\t\t\terror.value = event;\n\t\t};\n\t\trecognition.onend = () => {\n\t\t\tisListening.value = false;\n\t\t\trecognition.lang = toValue(lang);\n\t\t};\n\t\twatch(isListening, (newValue, oldValue) => {\n\t\t\tif (newValue === oldValue) return;\n\t\t\tif (newValue) recognition.start();\n\t\t\telse recognition.stop();\n\t\t});\n\t}\n\ttryOnScopeDispose(() => {\n\t\tstop();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisListening,\n\t\tisFinal,\n\t\trecognition,\n\t\tresult,\n\t\terror,\n\t\ttoggle,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useSpeechSynthesis/index.ts\n/**\n* Reactive SpeechSynthesis.\n*\n* @see https://vueuse.org/useSpeechSynthesis\n* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis SpeechSynthesis\n*/\nfunction useSpeechSynthesis(text, options = {}) {\n\tconst { pitch = 1, rate = 1, volume = 1, window: window$1 = defaultWindow, onBoundary } = options;\n\tconst synth = window$1 && window$1.speechSynthesis;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => synth);\n\tconst isPlaying = shallowRef(false);\n\tconst status = shallowRef(\"init\");\n\tconst spokenText = toRef(text || \"\");\n\tconst lang = toRef(options.lang || \"en-US\");\n\tconst error = shallowRef(void 0);\n\tconst toggle = (value = !isPlaying.value) => {\n\t\tisPlaying.value = value;\n\t};\n\tconst bindEventsForUtterance = (utterance$1) => {\n\t\tutterance$1.lang = toValue(lang);\n\t\tutterance$1.voice = toValue(options.voice) || null;\n\t\tutterance$1.pitch = toValue(pitch);\n\t\tutterance$1.rate = toValue(rate);\n\t\tutterance$1.volume = toValue(volume);\n\t\tutterance$1.onstart = () => {\n\t\t\tisPlaying.value = true;\n\t\t\tstatus.value = \"play\";\n\t\t};\n\t\tutterance$1.onpause = () => {\n\t\t\tisPlaying.value = false;\n\t\t\tstatus.value = \"pause\";\n\t\t};\n\t\tutterance$1.onresume = () => {\n\t\t\tisPlaying.value = true;\n\t\t\tstatus.value = \"play\";\n\t\t};\n\t\tutterance$1.onend = () => {\n\t\t\tisPlaying.value = false;\n\t\t\tstatus.value = \"end\";\n\t\t};\n\t\tutterance$1.onerror = (event) => {\n\t\t\terror.value = event;\n\t\t};\n\t\tutterance$1.onboundary = (event) => {\n\t\t\tonBoundary === null || onBoundary === void 0 || onBoundary(event);\n\t\t};\n\t};\n\tconst utterance = computed(() => {\n\t\tisPlaying.value = false;\n\t\tstatus.value = \"init\";\n\t\tconst newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n\t\tbindEventsForUtterance(newUtterance);\n\t\treturn newUtterance;\n\t});\n\tconst speak = () => {\n\t\tsynth.cancel();\n\t\tif (utterance) synth.speak(utterance.value);\n\t};\n\tconst stop = () => {\n\t\tsynth.cancel();\n\t\tisPlaying.value = false;\n\t};\n\tif (isSupported.value) {\n\t\tbindEventsForUtterance(utterance.value);\n\t\twatch(lang, (lang$1) => {\n\t\t\tif (utterance.value && !isPlaying.value) utterance.value.lang = lang$1;\n\t\t});\n\t\tif (options.voice) watch(options.voice, () => {\n\t\t\tsynth.cancel();\n\t\t});\n\t\twatch(isPlaying, () => {\n\t\t\tif (isPlaying.value) synth.resume();\n\t\t\telse synth.pause();\n\t\t});\n\t}\n\ttryOnScopeDispose(() => {\n\t\tisPlaying.value = false;\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisPlaying,\n\t\tstatus,\n\t\tutterance,\n\t\terror,\n\t\tstop,\n\t\ttoggle,\n\t\tspeak\n\t};\n}\n\n//#endregion\n//#region useStepper/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useStepper(steps, initialStep) {\n\tconst stepsRef = ref(steps);\n\tconst stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n\tconst index = ref(stepNames.value.indexOf(initialStep !== null && initialStep !== void 0 ? initialStep : stepNames.value[0]));\n\tconst current = computed(() => at(index.value));\n\tconst isFirst = computed(() => index.value === 0);\n\tconst isLast = computed(() => index.value === stepNames.value.length - 1);\n\tconst next = computed(() => stepNames.value[index.value + 1]);\n\tconst previous = computed(() => stepNames.value[index.value - 1]);\n\tfunction at(index$1) {\n\t\tif (Array.isArray(stepsRef.value)) return stepsRef.value[index$1];\n\t\treturn stepsRef.value[stepNames.value[index$1]];\n\t}\n\tfunction get(step) {\n\t\tif (!stepNames.value.includes(step)) return;\n\t\treturn at(stepNames.value.indexOf(step));\n\t}\n\tfunction goTo(step) {\n\t\tif (stepNames.value.includes(step)) index.value = stepNames.value.indexOf(step);\n\t}\n\tfunction goToNext() {\n\t\tif (isLast.value) return;\n\t\tindex.value++;\n\t}\n\tfunction goToPrevious() {\n\t\tif (isFirst.value) return;\n\t\tindex.value--;\n\t}\n\tfunction goBackTo(step) {\n\t\tif (isAfter(step)) goTo(step);\n\t}\n\tfunction isNext(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value + 1;\n\t}\n\tfunction isPrevious(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value - 1;\n\t}\n\tfunction isCurrent(step) {\n\t\treturn stepNames.value.indexOf(step) === index.value;\n\t}\n\tfunction isBefore(step) {\n\t\treturn index.value < stepNames.value.indexOf(step);\n\t}\n\tfunction isAfter(step) {\n\t\treturn index.value > stepNames.value.indexOf(step);\n\t}\n\treturn {\n\t\tsteps: stepsRef,\n\t\tstepNames,\n\t\tindex,\n\t\tcurrent,\n\t\tnext,\n\t\tprevious,\n\t\tisFirst,\n\t\tisLast,\n\t\tat,\n\t\tget,\n\t\tgoTo,\n\t\tgoToNext,\n\t\tgoToPrevious,\n\t\tgoBackTo,\n\t\tisNext,\n\t\tisPrevious,\n\t\tisCurrent,\n\t\tisBefore,\n\t\tisAfter\n\t};\n}\n\n//#endregion\n//#region useStorageAsync/index.ts\n/**\n* Reactive Storage in with async support.\n*\n* @see https://vueuse.org/useStorageAsync\n* @param key\n* @param initialValue\n* @param storage\n* @param options\n*/\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, onReady } = options;\n\tconst rawInit = toValue(initialValue);\n\tconst type = guessSerializerType(rawInit);\n\tconst data = (shallow ? shallowRef : ref)(toValue(initialValue));\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorageAsync\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tasync function read(event) {\n\t\tif (!storage || event && event.key !== key) return;\n\t\ttry {\n\t\t\tconst rawValue = event ? event.newValue : await storage.getItem(key);\n\t\t\tif (rawValue == null) {\n\t\t\t\tdata.value = rawInit;\n\t\t\t\tif (writeDefaults && rawInit !== null) await storage.setItem(key, await serializer.write(rawInit));\n\t\t\t} else if (mergeDefaults) {\n\t\t\t\tconst value = await serializer.read(rawValue);\n\t\t\t\tif (typeof mergeDefaults === \"function\") data.value = mergeDefaults(value, rawInit);\n\t\t\t\telse if (type === \"object\" && !Array.isArray(value)) data.value = {\n\t\t\t\t\t...rawInit,\n\t\t\t\t\t...value\n\t\t\t\t};\n\t\t\t\telse data.value = value;\n\t\t\t} else data.value = await serializer.read(rawValue);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tconst promise = new Promise((resolve) => {\n\t\tread().then(() => {\n\t\t\tonReady === null || onReady === void 0 || onReady(data.value);\n\t\t\tresolve(data);\n\t\t});\n\t});\n\tif (window$1 && listenToStorageChanges) useEventListener(window$1, \"storage\", (e) => Promise.resolve().then(() => read(e)), { passive: true });\n\tif (storage) watchWithFilter(data, async () => {\n\t\ttry {\n\t\t\tif (data.value == null) await storage.removeItem(key);\n\t\t\telse await storage.setItem(key, await serializer.write(data.value));\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\tObject.assign(data, {\n\t\tthen: promise.then.bind(promise),\n\t\tcatch: promise.catch.bind(promise)\n\t});\n\treturn data;\n}\n\n//#endregion\n//#region useStyleTag/index.ts\nlet _id = 0;\n/**\n* Inject <style> element in head.\n*\n* Overload: Omitted id\n*\n* @see https://vueuse.org/useStyleTag\n* @param css\n* @param options\n*/\nfunction useStyleTag(css, options = {}) {\n\tconst isLoaded = shallowRef(false);\n\tconst { document: document$1 = defaultDocument, immediate = true, manual = false, id = `vueuse_styletag_${++_id}` } = options;\n\tconst cssRef = shallowRef(css);\n\tlet stop = () => {};\n\tconst load = () => {\n\t\tif (!document$1) return;\n\t\tconst el = document$1.getElementById(id) || document$1.createElement(\"style\");\n\t\tif (!el.isConnected) {\n\t\t\tel.id = id;\n\t\t\tif (options.nonce) el.nonce = options.nonce;\n\t\t\tif (options.media) el.media = options.media;\n\t\t\tdocument$1.head.appendChild(el);\n\t\t}\n\t\tif (isLoaded.value) return;\n\t\tstop = watch(cssRef, (value) => {\n\t\t\tel.textContent = value;\n\t\t}, { immediate: true });\n\t\tisLoaded.value = true;\n\t};\n\tconst unload = () => {\n\t\tif (!document$1 || !isLoaded.value) return;\n\t\tstop();\n\t\tdocument$1.head.removeChild(document$1.getElementById(id));\n\t\tisLoaded.value = false;\n\t};\n\tif (immediate && !manual) tryOnMounted(load);\n\tif (!manual) tryOnScopeDispose(unload);\n\treturn {\n\t\tid,\n\t\tcss: cssRef,\n\t\tunload,\n\t\tload,\n\t\tisLoaded: readonly(isLoaded)\n\t};\n}\n\n//#endregion\n//#region useSwipe/index.ts\n/**\n* Reactive swipe detection.\n*\n* @see https://vueuse.org/useSwipe\n* @param target\n* @param options\n*/\nfunction useSwipe(target, options = {}) {\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, passive = true } = options;\n\tconst coordsStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst coordsEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst diffX = computed(() => coordsStart.x - coordsEnd.x);\n\tconst diffY = computed(() => coordsStart.y - coordsEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(diffX.value) > abs(diffY.value)) return diffX.value > 0 ? \"left\" : \"right\";\n\t\telse return diffY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n\tconst updateCoordsStart = (x, y) => {\n\t\tcoordsStart.x = x;\n\t\tcoordsStart.y = y;\n\t};\n\tconst updateCoordsEnd = (x, y) => {\n\t\tcoordsEnd.x = x;\n\t\tcoordsEnd.y = y;\n\t};\n\tconst listenerOptions = {\n\t\tpassive,\n\t\tcapture: !passive\n\t};\n\tconst onTouchEnd = (e) => {\n\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\tisSwiping.value = false;\n\t};\n\tconst stops = [\n\t\tuseEventListener(target, \"touchstart\", (e) => {\n\t\t\tif (e.touches.length !== 1) return;\n\t\t\tconst [x, y] = getTouchEventCoords(e);\n\t\t\tupdateCoordsStart(x, y);\n\t\t\tupdateCoordsEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"touchmove\", (e) => {\n\t\t\tif (e.touches.length !== 1) return;\n\t\t\tconst [x, y] = getTouchEventCoords(e);\n\t\t\tupdateCoordsEnd(x, y);\n\t\t\tif (listenerOptions.capture && !listenerOptions.passive && Math.abs(diffX.value) > Math.abs(diffY.value)) e.preventDefault();\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n\t];\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping,\n\t\tdirection,\n\t\tcoordsStart,\n\t\tcoordsEnd,\n\t\tlengthX: diffX,\n\t\tlengthY: diffY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTemplateRefsList/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useTemplateRefsList() {\n\tconst refs = ref([]);\n\trefs.value.set = (el) => {\n\t\tif (el) refs.value.push(el);\n\t};\n\tonBeforeUpdate(() => {\n\t\trefs.value.length = 0;\n\t});\n\treturn refs;\n}\n\n//#endregion\n//#region useTextDirection/index.ts\n/**\n* Reactive dir of the element's text.\n*\n* @see https://vueuse.org/useTextDirection\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTextDirection(options = {}) {\n\tconst { document: document$1 = defaultDocument, selector = \"html\", observe = false, initialValue = \"ltr\" } = options;\n\tfunction getValue$1() {\n\t\tvar _ref, _document$querySelect;\n\t\treturn (_ref = document$1 === null || document$1 === void 0 || (_document$querySelect = document$1.querySelector(selector)) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute(\"dir\")) !== null && _ref !== void 0 ? _ref : initialValue;\n\t}\n\tconst dir = ref(getValue$1());\n\ttryOnMounted(() => dir.value = getValue$1());\n\tif (observe && document$1) useMutationObserver(document$1.querySelector(selector), () => dir.value = getValue$1(), { attributes: true });\n\treturn computed({\n\t\tget() {\n\t\t\treturn dir.value;\n\t\t},\n\t\tset(v) {\n\t\t\tvar _document$querySelect2, _document$querySelect3;\n\t\t\tdir.value = v;\n\t\t\tif (!document$1) return;\n\t\t\tif (dir.value) (_document$querySelect2 = document$1.querySelector(selector)) === null || _document$querySelect2 === void 0 || _document$querySelect2.setAttribute(\"dir\", dir.value);\n\t\t\telse (_document$querySelect3 = document$1.querySelector(selector)) === null || _document$querySelect3 === void 0 || _document$querySelect3.removeAttribute(\"dir\");\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useTextSelection/index.ts\nfunction getRangesFromSelection(selection) {\n\tvar _selection$rangeCount;\n\tconst rangeCount = (_selection$rangeCount = selection.rangeCount) !== null && _selection$rangeCount !== void 0 ? _selection$rangeCount : 0;\n\treturn Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\n/**\n* Reactively track user text selection based on [`Window.getSelection`](https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection).\n*\n* @see https://vueuse.org/useTextSelection\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTextSelection(options = {}) {\n\tvar _window$getSelection;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst selection = shallowRef((_window$getSelection = window$1 === null || window$1 === void 0 ? void 0 : window$1.getSelection()) !== null && _window$getSelection !== void 0 ? _window$getSelection : null);\n\tconst text = computed(() => {\n\t\tvar _selection$value$toSt, _selection$value;\n\t\treturn (_selection$value$toSt = (_selection$value = selection.value) === null || _selection$value === void 0 ? void 0 : _selection$value.toString()) !== null && _selection$value$toSt !== void 0 ? _selection$value$toSt : \"\";\n\t});\n\tconst ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n\tconst rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n\tfunction onSelectionChange() {\n\t\tselection.value = null;\n\t\tif (window$1) selection.value = window$1.getSelection();\n\t}\n\tif (window$1) useEventListener(window$1.document, \"selectionchange\", onSelectionChange, { passive: true });\n\treturn {\n\t\ttext,\n\t\trects,\n\t\tranges,\n\t\tselection\n\t};\n}\n\n//#endregion\n//#region useTextareaAutosize/index.ts\n/**\n* Call window.requestAnimationFrame(), if not available, just call the function\n*\n* @param window\n* @param fn\n*/\nfunction tryRequestAnimationFrame(window$1 = defaultWindow, fn) {\n\tif (window$1 && typeof window$1.requestAnimationFrame === \"function\") window$1.requestAnimationFrame(fn);\n\telse fn();\n}\nfunction useTextareaAutosize(options = {}) {\n\tvar _options$input, _options$styleProp;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst textarea = toRef(options === null || options === void 0 ? void 0 : options.element);\n\tconst input = toRef((_options$input = options === null || options === void 0 ? void 0 : options.input) !== null && _options$input !== void 0 ? _options$input : \"\");\n\tconst styleProp = (_options$styleProp = options === null || options === void 0 ? void 0 : options.styleProp) !== null && _options$styleProp !== void 0 ? _options$styleProp : \"height\";\n\tconst textareaScrollHeight = shallowRef(1);\n\tconst textareaOldWidth = shallowRef(0);\n\tfunction triggerResize() {\n\t\tvar _textarea$value;\n\t\tif (!textarea.value) return;\n\t\tlet height = \"\";\n\t\ttextarea.value.style[styleProp] = \"1px\";\n\t\ttextareaScrollHeight.value = (_textarea$value = textarea.value) === null || _textarea$value === void 0 ? void 0 : _textarea$value.scrollHeight;\n\t\tconst _styleTarget = toValue(options === null || options === void 0 ? void 0 : options.styleTarget);\n\t\tif (_styleTarget) _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n\t\telse height = `${textareaScrollHeight.value}px`;\n\t\ttextarea.value.style[styleProp] = height;\n\t}\n\twatch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n\twatch(textareaScrollHeight, () => {\n\t\tvar _options$onResize;\n\t\treturn options === null || options === void 0 || (_options$onResize = options.onResize) === null || _options$onResize === void 0 ? void 0 : _options$onResize.call(options);\n\t});\n\tuseResizeObserver(textarea, ([{ contentRect }]) => {\n\t\tif (textareaOldWidth.value === contentRect.width) return;\n\t\ttryRequestAnimationFrame(window$1, () => {\n\t\t\ttextareaOldWidth.value = contentRect.width;\n\t\t\ttriggerResize();\n\t\t});\n\t});\n\tif (options === null || options === void 0 ? void 0 : options.watch) watch(options.watch, triggerResize, {\n\t\timmediate: true,\n\t\tdeep: true\n\t});\n\treturn {\n\t\ttextarea,\n\t\tinput,\n\t\ttriggerResize\n\t};\n}\n\n//#endregion\n//#region useThrottledRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with throttled filter.\n*\n* @see https://vueuse.org/useThrottledRefHistory\n* @param source\n* @param options\n*/\nfunction useThrottledRefHistory(source, options = {}) {\n\tconst { throttle = 200, trailing = true } = options;\n\tconst filter = throttleFilter(throttle, trailing);\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useTimeAgo/index.ts\nconst DEFAULT_UNITS = [\n\t{\n\t\tmax: 6e4,\n\t\tvalue: 1e3,\n\t\tname: \"second\"\n\t},\n\t{\n\t\tmax: 276e4,\n\t\tvalue: 6e4,\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tmax: 72e6,\n\t\tvalue: 36e5,\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tmax: 5184e5,\n\t\tvalue: 864e5,\n\t\tname: \"day\"\n\t},\n\t{\n\t\tmax: 24192e5,\n\t\tvalue: 6048e5,\n\t\tname: \"week\"\n\t},\n\t{\n\t\tmax: 28512e6,\n\t\tvalue: 2592e6,\n\t\tname: \"month\"\n\t},\n\t{\n\t\tmax: Number.POSITIVE_INFINITY,\n\t\tvalue: 31536e6,\n\t\tname: \"year\"\n\t}\n];\nconst DEFAULT_MESSAGES = {\n\tjustNow: \"just now\",\n\tpast: (n) => n.match(/\\d/) ? `${n} ago` : n,\n\tfuture: (n) => n.match(/\\d/) ? `in ${n}` : n,\n\tmonth: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n\tyear: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n\tday: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n\tweek: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n\thour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n\tminute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n\tsecond: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n\tinvalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n\treturn date.toISOString().slice(0, 10);\n}\n/**\n* Reactive time ago formatter.\n*\n* @see https://vueuse.org/useTimeAgo\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useTimeAgo(time, options = {}) {\n\tconst { controls: exposeControls = false, updateInterval = 3e4 } = options;\n\tconst { now,...controls } = useNow({\n\t\tinterval: updateInterval,\n\t\tcontrols: true\n\t});\n\tconst timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n\tif (exposeControls) return {\n\t\ttimeAgo,\n\t\t...controls\n\t};\n\telse return timeAgo;\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n\tconst { max, messages = DEFAULT_MESSAGES, fullDateFormatter = DEFAULT_FORMATTER, units = DEFAULT_UNITS, showSecond = false, rounding = \"round\" } = options;\n\tconst roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n\tconst diff = +now - +from;\n\tconst absDiff = Math.abs(diff);\n\tfunction getValue$1(diff$1, unit) {\n\t\treturn roundFn(Math.abs(diff$1) / unit.value);\n\t}\n\tfunction format(diff$1, unit) {\n\t\tconst val = getValue$1(diff$1, unit);\n\t\tconst past = diff$1 > 0;\n\t\tconst str = applyFormat(unit.name, val, past);\n\t\treturn applyFormat(past ? \"past\" : \"future\", str, past);\n\t}\n\tfunction applyFormat(name, val, isPast) {\n\t\tconst formatter = messages[name];\n\t\tif (typeof formatter === \"function\") return formatter(val, isPast);\n\t\treturn formatter.replace(\"{0}\", val.toString());\n\t}\n\tif (absDiff < 6e4 && !showSecond) return messages.justNow;\n\tif (typeof max === \"number\" && absDiff > max) return fullDateFormatter(new Date(from));\n\tif (typeof max === \"string\") {\n\t\tvar _units$find;\n\t\tconst unitMax = (_units$find = units.find((i) => i.name === max)) === null || _units$find === void 0 ? void 0 : _units$find.max;\n\t\tif (unitMax && absDiff > unitMax) return fullDateFormatter(new Date(from));\n\t}\n\tfor (const [idx, unit] of units.entries()) {\n\t\tif (getValue$1(diff, unit) <= 0 && units[idx - 1]) return format(diff, units[idx - 1]);\n\t\tif (absDiff < unit.max) return format(diff, unit);\n\t}\n\treturn messages.invalid;\n}\n\n//#endregion\n//#region useTimeAgoIntl/index.ts\nconst UNITS = [\n\t{\n\t\tname: \"year\",\n\t\tms: 31536e6\n\t},\n\t{\n\t\tname: \"month\",\n\t\tms: 2592e6\n\t},\n\t{\n\t\tname: \"week\",\n\t\tms: 6048e5\n\t},\n\t{\n\t\tname: \"day\",\n\t\tms: 864e5\n\t},\n\t{\n\t\tname: \"hour\",\n\t\tms: 36e5\n\t},\n\t{\n\t\tname: \"minute\",\n\t\tms: 6e4\n\t},\n\t{\n\t\tname: \"second\",\n\t\tms: 1e3\n\t}\n];\nfunction useTimeAgoIntl(time, options = {}) {\n\tconst { controls: exposeControls = false, updateInterval = 3e4 } = options;\n\tconst { now,...controls } = useNow({\n\t\tinterval: updateInterval,\n\t\tcontrols: true\n\t});\n\tconst result = computed(() => getTimeAgoIntlResult(new Date(toValue(time)), options, toValue(now)));\n\tconst parts = computed(() => result.value.parts);\n\tconst timeAgoIntl = computed(() => formatTimeAgoIntlParts(parts.value, {\n\t\t...options,\n\t\tlocale: result.value.resolvedLocale\n\t}));\n\treturn exposeControls ? {\n\t\ttimeAgoIntl,\n\t\tparts,\n\t\t...controls\n\t} : timeAgoIntl;\n}\n/**\n* Non-reactive version of useTimeAgoIntl\n*/\nfunction formatTimeAgoIntl(from, options = {}, now = Date.now()) {\n\tconst { parts, resolvedLocale } = getTimeAgoIntlResult(from, options, now);\n\treturn formatTimeAgoIntlParts(parts, {\n\t\t...options,\n\t\tlocale: resolvedLocale\n\t});\n}\n/**\n* Get parts from `Intl.RelativeTimeFormat.formatToParts`.\n*/\nfunction getTimeAgoIntlResult(from, options = {}, now = Date.now()) {\n\tconst { locale, relativeTimeFormatOptions = { numeric: \"auto\" } } = options;\n\tconst rtf = new Intl.RelativeTimeFormat(locale, relativeTimeFormatOptions);\n\tconst { locale: resolvedLocale } = rtf.resolvedOptions();\n\tconst diff = +from - +now;\n\tconst absDiff = Math.abs(diff);\n\tfor (const { name, ms } of UNITS) if (absDiff >= ms) return {\n\t\tresolvedLocale,\n\t\tparts: rtf.formatToParts(Math.round(diff / ms), name)\n\t};\n\treturn {\n\t\tresolvedLocale,\n\t\tparts: rtf.formatToParts(0, \"second\")\n\t};\n}\n/**\n* Format parts into a string\n*/\nfunction formatTimeAgoIntlParts(parts, options = {}) {\n\tconst { insertSpace = true, joinParts, locale } = options;\n\tif (typeof joinParts === \"function\") return joinParts(parts, locale);\n\tif (!insertSpace) return parts.map((part) => part.value).join(\"\");\n\treturn parts.map((part) => part.value.trim()).join(\" \");\n}\n\n//#endregion\n//#region useTimeoutPoll/index.ts\nfunction useTimeoutPoll(fn, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst { start } = useTimeoutFn(loop, interval, { immediate });\n\tconst isActive = shallowRef(false);\n\tasync function loop() {\n\t\tif (!isActive.value) return;\n\t\tawait fn();\n\t\tstart();\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value) {\n\t\t\tisActive.value = true;\n\t\t\tif (immediateCallback) fn();\n\t\t\tstart();\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tif (immediate && isClient) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive,\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useTimestamp/index.ts\nfunction useTimestamp(options = {}) {\n\tconst { controls: exposeControls = false, offset = 0, immediate = true, interval = \"requestAnimationFrame\", callback } = options;\n\tconst ts = shallowRef(timestamp() + offset);\n\tconst update = () => ts.value = timestamp() + offset;\n\tconst cb = callback ? () => {\n\t\tupdate();\n\t\tcallback(ts.value);\n\t} : update;\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n\tif (exposeControls) return {\n\t\ttimestamp: ts,\n\t\t...controls\n\t};\n\telse return ts;\n}\n\n//#endregion\n//#region useTitle/index.ts\nfunction useTitle(newTitle = null, options = {}) {\n\tvar _document$title, _ref;\n\tconst { document: document$1 = defaultDocument, restoreOnUnmount = (t) => t } = options;\n\tconst originalTitle = (_document$title = document$1 === null || document$1 === void 0 ? void 0 : document$1.title) !== null && _document$title !== void 0 ? _document$title : \"\";\n\tconst title = toRef((_ref = newTitle !== null && newTitle !== void 0 ? newTitle : document$1 === null || document$1 === void 0 ? void 0 : document$1.title) !== null && _ref !== void 0 ? _ref : null);\n\tconst isReadonly$1 = !!(newTitle && typeof newTitle === \"function\");\n\tfunction format(t) {\n\t\tif (!(\"titleTemplate\" in options)) return t;\n\t\tconst template = options.titleTemplate || \"%s\";\n\t\treturn typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n\t}\n\twatch(title, (newValue, oldValue) => {\n\t\tif (newValue !== oldValue && document$1) document$1.title = format(newValue !== null && newValue !== void 0 ? newValue : \"\");\n\t}, { immediate: true });\n\tif (options.observe && !options.titleTemplate && document$1 && !isReadonly$1) {\n\t\tvar _document$head;\n\t\tuseMutationObserver((_document$head = document$1.head) === null || _document$head === void 0 ? void 0 : _document$head.querySelector(\"title\"), () => {\n\t\t\tif (document$1 && document$1.title !== title.value) title.value = format(document$1.title);\n\t\t}, { childList: true });\n\t}\n\ttryOnScopeDispose(() => {\n\t\tif (restoreOnUnmount) {\n\t\t\tconst restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n\t\t\tif (restoredTitle != null && document$1) document$1.title = restoredTitle;\n\t\t}\n\t});\n\treturn title;\n}\n\n//#endregion\n//#region useTransition/index.ts\nconst _TransitionPresets = {\n\teaseInSine: [\n\t\t.12,\n\t\t0,\n\t\t.39,\n\t\t0\n\t],\n\teaseOutSine: [\n\t\t.61,\n\t\t1,\n\t\t.88,\n\t\t1\n\t],\n\teaseInOutSine: [\n\t\t.37,\n\t\t0,\n\t\t.63,\n\t\t1\n\t],\n\teaseInQuad: [\n\t\t.11,\n\t\t0,\n\t\t.5,\n\t\t0\n\t],\n\teaseOutQuad: [\n\t\t.5,\n\t\t1,\n\t\t.89,\n\t\t1\n\t],\n\teaseInOutQuad: [\n\t\t.45,\n\t\t0,\n\t\t.55,\n\t\t1\n\t],\n\teaseInCubic: [\n\t\t.32,\n\t\t0,\n\t\t.67,\n\t\t0\n\t],\n\teaseOutCubic: [\n\t\t.33,\n\t\t1,\n\t\t.68,\n\t\t1\n\t],\n\teaseInOutCubic: [\n\t\t.65,\n\t\t0,\n\t\t.35,\n\t\t1\n\t],\n\teaseInQuart: [\n\t\t.5,\n\t\t0,\n\t\t.75,\n\t\t0\n\t],\n\teaseOutQuart: [\n\t\t.25,\n\t\t1,\n\t\t.5,\n\t\t1\n\t],\n\teaseInOutQuart: [\n\t\t.76,\n\t\t0,\n\t\t.24,\n\t\t1\n\t],\n\teaseInQuint: [\n\t\t.64,\n\t\t0,\n\t\t.78,\n\t\t0\n\t],\n\teaseOutQuint: [\n\t\t.22,\n\t\t1,\n\t\t.36,\n\t\t1\n\t],\n\teaseInOutQuint: [\n\t\t.83,\n\t\t0,\n\t\t.17,\n\t\t1\n\t],\n\teaseInExpo: [\n\t\t.7,\n\t\t0,\n\t\t.84,\n\t\t0\n\t],\n\teaseOutExpo: [\n\t\t.16,\n\t\t1,\n\t\t.3,\n\t\t1\n\t],\n\teaseInOutExpo: [\n\t\t.87,\n\t\t0,\n\t\t.13,\n\t\t1\n\t],\n\teaseInCirc: [\n\t\t.55,\n\t\t0,\n\t\t1,\n\t\t.45\n\t],\n\teaseOutCirc: [\n\t\t0,\n\t\t.55,\n\t\t.45,\n\t\t1\n\t],\n\teaseInOutCirc: [\n\t\t.85,\n\t\t0,\n\t\t.15,\n\t\t1\n\t],\n\teaseInBack: [\n\t\t.36,\n\t\t0,\n\t\t.66,\n\t\t-.56\n\t],\n\teaseOutBack: [\n\t\t.34,\n\t\t1.56,\n\t\t.64,\n\t\t1\n\t],\n\teaseInOutBack: [\n\t\t.68,\n\t\t-.6,\n\t\t.32,\n\t\t1.6\n\t]\n};\n/**\n* Common transitions\n*\n* @see https://easings.net\n*/\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\n/**\n* Create an easing function from cubic bezier points.\n*/\nfunction createEasingFunction([p0, p1, p2, p3]) {\n\tconst a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n\tconst b = (a1, a2) => 3 * a2 - 6 * a1;\n\tconst c = (a1) => 3 * a1;\n\tconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n\tconst getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n\tconst getTforX = (x) => {\n\t\tlet aGuessT = x;\n\t\tfor (let i = 0; i < 4; ++i) {\n\t\t\tconst currentSlope = getSlope(aGuessT, p0, p2);\n\t\t\tif (currentSlope === 0) return aGuessT;\n\t\t\tconst currentX = calcBezier(aGuessT, p0, p2) - x;\n\t\t\taGuessT -= currentX / currentSlope;\n\t\t}\n\t\treturn aGuessT;\n\t};\n\treturn (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n\treturn a + alpha * (b - a);\n}\nfunction defaultInterpolation(a, b, t) {\n\tconst aVal = toValue(a);\n\tconst bVal = toValue(b);\n\tif (typeof aVal === \"number\" && typeof bVal === \"number\") return lerp(aVal, bVal, t);\n\tif (Array.isArray(aVal) && Array.isArray(bVal)) return aVal.map((v, i) => lerp(v, toValue(bVal[i]), t));\n\tthrow new TypeError(\"Unknown transition type, specify an interpolation function.\");\n}\nfunction normalizeEasing(easing) {\n\tvar _toValue;\n\treturn typeof easing === \"function\" ? easing : (_toValue = toValue(easing)) !== null && _toValue !== void 0 ? _toValue : identity;\n}\n/**\n* Transition from one value to another.\n*\n* @param source\n* @param from\n* @param to\n* @param options\n*/\nfunction transition(source, from, to, options = {}) {\n\tvar _toValue2;\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst fromVal = toValue(from);\n\tconst toVal = toValue(to);\n\tconst duration = (_toValue2 = toValue(options.duration)) !== null && _toValue2 !== void 0 ? _toValue2 : 1e3;\n\tconst startedAt = Date.now();\n\tconst endAt = Date.now() + duration;\n\tconst interpolation = typeof options.interpolation === \"function\" ? options.interpolation : defaultInterpolation;\n\tconst trans = typeof options.easing !== \"undefined\" ? normalizeEasing(options.easing) : normalizeEasing(options.transition);\n\tconst ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n\treturn new Promise((resolve) => {\n\t\tsource.value = fromVal;\n\t\tconst tick = () => {\n\t\t\tvar _options$abort;\n\t\t\tif ((_options$abort = options.abort) === null || _options$abort === void 0 ? void 0 : _options$abort.call(options)) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst now = Date.now();\n\t\t\tsource.value = interpolation(fromVal, toVal, ease((now - startedAt) / duration));\n\t\t\tif (now < endAt) window$1 === null || window$1 === void 0 || window$1.requestAnimationFrame(tick);\n\t\t\telse {\n\t\t\t\tsource.value = toVal;\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\ttick();\n\t});\n}\n/**\n* Transition from one value to another.\n* @deprecated The `executeTransition` function is deprecated, use `transition` instead.\n*\n* @param source\n* @param from\n* @param to\n* @param options\n*/\nfunction executeTransition(source, from, to, options = {}) {\n\treturn transition(source, from, to, options);\n}\n/**\n* Follow value with a transition.\n*\n* @see https://vueuse.org/useTransition\n* @param source\n* @param options\n*/\nfunction useTransition(source, options = {}) {\n\tlet currentId = 0;\n\tconst sourceVal = () => {\n\t\tconst v = toValue(source);\n\t\treturn typeof options.interpolation === \"undefined\" && Array.isArray(v) ? v.map(toValue) : v;\n\t};\n\tconst outputRef = shallowRef(sourceVal());\n\twatch(sourceVal, async (to) => {\n\t\tvar _options$onStarted, _options$onFinished;\n\t\tif (toValue(options.disabled)) return;\n\t\tconst id = ++currentId;\n\t\tif (options.delay) await promiseTimeout(toValue(options.delay));\n\t\tif (id !== currentId) return;\n\t\t(_options$onStarted = options.onStarted) === null || _options$onStarted === void 0 || _options$onStarted.call(options);\n\t\tawait transition(outputRef, outputRef.value, to, {\n\t\t\t...options,\n\t\t\tabort: () => {\n\t\t\t\tvar _options$abort2;\n\t\t\t\treturn id !== currentId || ((_options$abort2 = options.abort) === null || _options$abort2 === void 0 ? void 0 : _options$abort2.call(options));\n\t\t\t}\n\t\t});\n\t\t(_options$onFinished = options.onFinished) === null || _options$onFinished === void 0 || _options$onFinished.call(options);\n\t}, { deep: true });\n\twatch(() => toValue(options.disabled), (disabled) => {\n\t\tif (disabled) {\n\t\t\tcurrentId++;\n\t\t\toutputRef.value = sourceVal();\n\t\t}\n\t});\n\ttryOnScopeDispose(() => {\n\t\tcurrentId++;\n\t});\n\treturn computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\n//#endregion\n//#region useUrlSearchParams/index.ts\n/**\n* Reactive URLSearchParams\n*\n* @see https://vueuse.org/useUrlSearchParams\n* @param mode\n* @param options\n*/\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n\tconst { initialValue = {}, removeNullishValues = true, removeFalsyValues = false, write: enableWrite = true, writeMode = \"replace\", window: window$1 = defaultWindow, stringify = (params) => params.toString() } = options;\n\tif (!window$1) return reactive(initialValue);\n\tconst state = reactive({});\n\tfunction getRawParams() {\n\t\tif (mode === \"history\") return window$1.location.search || \"\";\n\t\telse if (mode === \"hash\") {\n\t\t\tconst hash = window$1.location.hash || \"\";\n\t\t\tconst index = hash.indexOf(\"?\");\n\t\t\treturn index > 0 ? hash.slice(index) : \"\";\n\t\t} else return (window$1.location.hash || \"\").replace(/^#/, \"\");\n\t}\n\tfunction constructQuery(params) {\n\t\tconst stringified = stringify(params);\n\t\tif (mode === \"history\") return `${stringified ? `?${stringified}` : \"\"}${window$1.location.hash || \"\"}`;\n\t\tif (mode === \"hash-params\") return `${window$1.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n\t\tconst hash = window$1.location.hash || \"#\";\n\t\tconst index = hash.indexOf(\"?\");\n\t\tif (index > 0) return `${window$1.location.search || \"\"}${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n\t\treturn `${window$1.location.search || \"\"}${hash}${stringified ? `?${stringified}` : \"\"}`;\n\t}\n\tfunction read() {\n\t\treturn new URLSearchParams(getRawParams());\n\t}\n\tfunction updateState(params) {\n\t\tconst unusedKeys = new Set(Object.keys(state));\n\t\tfor (const key of params.keys()) {\n\t\t\tconst paramsForKey = params.getAll(key);\n\t\t\tstate[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n\t\t\tunusedKeys.delete(key);\n\t\t}\n\t\tArray.from(unusedKeys).forEach((key) => delete state[key]);\n\t}\n\tconst { pause, resume } = pausableWatch(state, () => {\n\t\tconst params = new URLSearchParams(\"\");\n\t\tObject.keys(state).forEach((key) => {\n\t\t\tconst mapEntry = state[key];\n\t\t\tif (Array.isArray(mapEntry)) mapEntry.forEach((value) => params.append(key, value));\n\t\t\telse if (removeNullishValues && mapEntry == null) params.delete(key);\n\t\t\telse if (removeFalsyValues && !mapEntry) params.delete(key);\n\t\t\telse params.set(key, mapEntry);\n\t\t});\n\t\twrite(params, false);\n\t}, { deep: true });\n\tfunction write(params, shouldUpdate, shouldWriteHistory = true) {\n\t\tpause();\n\t\tif (shouldUpdate) updateState(params);\n\t\tif (writeMode === \"replace\") window$1.history.replaceState(window$1.history.state, window$1.document.title, window$1.location.pathname + constructQuery(params));\n\t\telse if (shouldWriteHistory) window$1.history.pushState(window$1.history.state, window$1.document.title, window$1.location.pathname + constructQuery(params));\n\t\tnextTick(() => resume());\n\t}\n\tfunction onChanged() {\n\t\tif (!enableWrite) return;\n\t\twrite(read(), true, false);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(window$1, \"popstate\", onChanged, listenerOptions);\n\tif (mode !== \"history\") useEventListener(window$1, \"hashchange\", onChanged, listenerOptions);\n\tconst initial = read();\n\tif (initial.keys().next().value) updateState(initial);\n\telse Object.assign(state, initialValue);\n\treturn state;\n}\n\n//#endregion\n//#region useUserMedia/index.ts\n/**\n* Reactive `mediaDevices.getUserMedia` streaming\n*\n* @see https://vueuse.org/useUserMedia\n* @param options\n*/\nfunction useUserMedia(options = {}) {\n\tvar _options$enabled, _options$autoSwitch;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst autoSwitch = shallowRef((_options$autoSwitch = options.autoSwitch) !== null && _options$autoSwitch !== void 0 ? _options$autoSwitch : true);\n\tconst constraints = ref(options.constraints);\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getUserMedia;\n\t});\n\tconst stream = shallowRef();\n\tfunction getDeviceOptions(type) {\n\t\tswitch (type) {\n\t\t\tcase \"video\":\n\t\t\t\tif (constraints.value) return constraints.value.video || false;\n\t\t\t\tbreak;\n\t\t\tcase \"audio\":\n\t\t\t\tif (constraints.value) return constraints.value.audio || false;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tasync function _start() {\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getUserMedia({\n\t\t\tvideo: getDeviceOptions(\"video\"),\n\t\t\taudio: getDeviceOptions(\"audio\")\n\t\t});\n\t\treturn stream.value;\n\t}\n\tfunction _stop() {\n\t\tvar _stream$value;\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\tasync function restart() {\n\t\t_stop();\n\t\treturn await start();\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\twatch(constraints, () => {\n\t\tif (autoSwitch.value && stream.value) restart();\n\t}, {\n\t\timmediate: true,\n\t\tdeep: true\n\t});\n\ttryOnScopeDispose(() => {\n\t\tstop();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\trestart,\n\t\tconstraints,\n\t\tenabled,\n\t\tautoSwitch\n\t};\n}\n\n//#endregion\n//#region useVModel/index.ts\n/**\n* Shorthand for v-model binding, props + emit -> ref\n*\n* @see https://vueuse.org/useVModel\n* @param props\n* @param key (default 'modelValue')\n* @param emit\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVModel(props, key, emit, options = {}) {\n\tvar _vm$$emit, _vm$proxy;\n\tconst { clone = false, passive = false, eventName, deep = false, defaultValue, shouldEmit } = options;\n\tconst vm = getCurrentInstance();\n\tconst _emit = emit || (vm === null || vm === void 0 ? void 0 : vm.emit) || (vm === null || vm === void 0 || (_vm$$emit = vm.$emit) === null || _vm$$emit === void 0 ? void 0 : _vm$$emit.bind(vm)) || (vm === null || vm === void 0 || (_vm$proxy = vm.proxy) === null || _vm$proxy === void 0 || (_vm$proxy = _vm$proxy.$emit) === null || _vm$proxy === void 0 ? void 0 : _vm$proxy.bind(vm === null || vm === void 0 ? void 0 : vm.proxy));\n\tlet event = eventName;\n\tif (!key) key = \"modelValue\";\n\tevent = event || `update:${key.toString()}`;\n\tconst cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n\tconst getValue$1 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n\tconst triggerEmit = (value) => {\n\t\tif (shouldEmit) {\n\t\t\tif (shouldEmit(value)) _emit(event, value);\n\t\t} else _emit(event, value);\n\t};\n\tif (passive) {\n\t\tconst proxy = ref(getValue$1());\n\t\tlet isUpdating = false;\n\t\twatch(() => props[key], (v) => {\n\t\t\tif (!isUpdating) {\n\t\t\t\tisUpdating = true;\n\t\t\t\tproxy.value = cloneFn(v);\n\t\t\t\tnextTick(() => isUpdating = false);\n\t\t\t}\n\t\t});\n\t\twatch(proxy, (v) => {\n\t\t\tif (!isUpdating && (v !== props[key] || deep)) triggerEmit(v);\n\t\t}, { deep });\n\t\treturn proxy;\n\t} else return computed({\n\t\tget() {\n\t\t\treturn getValue$1();\n\t\t},\n\t\tset(value) {\n\t\t\ttriggerEmit(value);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useVModels/index.ts\n/**\n* Shorthand for props v-model binding. Think like `toRefs(props)` but changes will also emit out.\n*\n* @see https://vueuse.org/useVModels\n* @param props\n* @param emit\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVModels(props, emit, options = {}) {\n\tconst ret = {};\n\tfor (const key in props) ret[key] = useVModel(props, key, emit, options);\n\treturn ret;\n}\n\n//#endregion\n//#region useVibrate/index.ts\n/**\n* Reactive vibrate\n*\n* @see https://vueuse.org/useVibrate\n* @see https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useVibrate(options) {\n\tconst { pattern = [], interval = 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof navigator$1 !== \"undefined\" && \"vibrate\" in navigator$1);\n\tconst patternRef = toRef(pattern);\n\tlet intervalControls;\n\tconst vibrate = (pattern$1 = patternRef.value) => {\n\t\tif (isSupported.value) navigator$1.vibrate(pattern$1);\n\t};\n\tconst stop = () => {\n\t\tif (isSupported.value) navigator$1.vibrate(0);\n\t\tintervalControls === null || intervalControls === void 0 || intervalControls.pause();\n\t};\n\tif (interval > 0) intervalControls = useIntervalFn(vibrate, interval, {\n\t\timmediate: false,\n\t\timmediateCallback: false\n\t});\n\treturn {\n\t\tisSupported,\n\t\tpattern,\n\t\tintervalControls,\n\t\tvibrate,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useVirtualList/index.ts\n/**\n* Please consider using [`vue-virtual-scroller`](https://github.com/Akryum/vue-virtual-scroller) if you are looking for more features.\n*/\nfunction useVirtualList(list, options) {\n\tconst { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n\treturn {\n\t\tlist: currentList,\n\t\tscrollTo,\n\t\tcontainerProps: {\n\t\t\tref: containerRef,\n\t\t\tonScroll: () => {\n\t\t\t\tcalculateRange();\n\t\t\t},\n\t\t\tstyle: containerStyle\n\t\t},\n\t\twrapperProps\n\t};\n}\nfunction useVirtualListResources(list) {\n\tconst containerRef = shallowRef(null);\n\tconst size = useElementSize(containerRef);\n\tconst currentList = ref([]);\n\tconst source = shallowRef(list);\n\treturn {\n\t\tstate: ref({\n\t\t\tstart: 0,\n\t\t\tend: 10\n\t\t}),\n\t\tsource,\n\t\tcurrentList,\n\t\tsize,\n\t\tcontainerRef\n\t};\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n\treturn (containerSize) => {\n\t\tif (typeof itemSize === \"number\") return Math.ceil(containerSize / itemSize);\n\t\tconst { start = 0 } = state.value;\n\t\tlet sum = 0;\n\t\tlet capacity = 0;\n\t\tfor (let i = start; i < source.value.length; i++) {\n\t\t\tconst size = itemSize(i);\n\t\t\tsum += size;\n\t\t\tcapacity = i;\n\t\t\tif (sum > containerSize) break;\n\t\t}\n\t\treturn capacity - start;\n\t};\n}\nfunction createGetOffset(source, itemSize) {\n\treturn (scrollDirection) => {\n\t\tif (typeof itemSize === \"number\") return Math.floor(scrollDirection / itemSize) + 1;\n\t\tlet sum = 0;\n\t\tlet offset = 0;\n\t\tfor (let i = 0; i < source.value.length; i++) {\n\t\t\tconst size = itemSize(i);\n\t\t\tsum += size;\n\t\t\tif (sum >= scrollDirection) {\n\t\t\t\toffset = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn offset + 1;\n\t};\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n\treturn () => {\n\t\tconst element = containerRef.value;\n\t\tif (element) {\n\t\t\tconst offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n\t\t\tconst viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n\t\t\tconst from = offset - overscan;\n\t\t\tconst to = offset + viewCapacity + overscan;\n\t\t\tstate.value = {\n\t\t\t\tstart: from < 0 ? 0 : from,\n\t\t\t\tend: to > source.value.length ? source.value.length : to\n\t\t\t};\n\t\t\tcurrentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n\t\t\t\tdata: ele,\n\t\t\t\tindex: index + state.value.start\n\t\t\t}));\n\t\t}\n\t};\n}\nfunction createGetDistance(itemSize, source) {\n\treturn (index) => {\n\t\tif (typeof itemSize === \"number\") return index * itemSize;\n\t\treturn source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n\t};\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n\twatch([\n\t\tsize.width,\n\t\tsize.height,\n\t\t() => toValue(list),\n\t\tcontainerRef\n\t], () => {\n\t\tcalculateRange();\n\t});\n}\nfunction createComputedTotalSize(itemSize, source) {\n\treturn computed(() => {\n\t\tif (typeof itemSize === \"number\") return source.value.length * itemSize;\n\t\treturn source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n\t});\n}\nconst scrollToDictionaryForElementScrollKey = {\n\thorizontal: \"scrollLeft\",\n\tvertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n\treturn (index) => {\n\t\tif (containerRef.value) {\n\t\t\tcontainerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n\t\t\tcalculateRange();\n\t\t}\n\t};\n}\nfunction useHorizontalVirtualList(options, list) {\n\tconst resources = useVirtualListResources(list);\n\tconst { state, source, currentList, size, containerRef } = resources;\n\tconst containerStyle = { overflowX: \"auto\" };\n\tconst { itemWidth, overscan = 5 } = options;\n\tconst getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n\tconst calculateRange = createCalculateRange(\"horizontal\", overscan, createGetOffset(source, itemWidth), getViewCapacity, resources);\n\tconst getDistanceLeft = createGetDistance(itemWidth, source);\n\tconst offsetLeft = computed(() => getDistanceLeft(state.value.start));\n\tconst totalWidth = createComputedTotalSize(itemWidth, source);\n\tuseWatchForSizes(size, list, containerRef, calculateRange);\n\treturn {\n\t\tscrollTo: createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef),\n\t\tcalculateRange,\n\t\twrapperProps: computed(() => {\n\t\t\treturn { style: {\n\t\t\t\theight: \"100%\",\n\t\t\t\twidth: `${totalWidth.value - offsetLeft.value}px`,\n\t\t\t\tmarginLeft: `${offsetLeft.value}px`,\n\t\t\t\tdisplay: \"flex\"\n\t\t\t} };\n\t\t}),\n\t\tcontainerStyle,\n\t\tcurrentList,\n\t\tcontainerRef\n\t};\n}\nfunction useVerticalVirtualList(options, list) {\n\tconst resources = useVirtualListResources(list);\n\tconst { state, source, currentList, size, containerRef } = resources;\n\tconst containerStyle = { overflowY: \"auto\" };\n\tconst { itemHeight, overscan = 5 } = options;\n\tconst getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n\tconst calculateRange = createCalculateRange(\"vertical\", overscan, createGetOffset(source, itemHeight), getViewCapacity, resources);\n\tconst getDistanceTop = createGetDistance(itemHeight, source);\n\tconst offsetTop = computed(() => getDistanceTop(state.value.start));\n\tconst totalHeight = createComputedTotalSize(itemHeight, source);\n\tuseWatchForSizes(size, list, containerRef, calculateRange);\n\treturn {\n\t\tcalculateRange,\n\t\tscrollTo: createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef),\n\t\tcontainerStyle,\n\t\twrapperProps: computed(() => {\n\t\t\treturn { style: {\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: `${totalHeight.value - offsetTop.value}px`,\n\t\t\t\tmarginTop: `${offsetTop.value}px`\n\t\t\t} };\n\t\t}),\n\t\tcurrentList,\n\t\tcontainerRef\n\t};\n}\n\n//#endregion\n//#region useWakeLock/index.ts\n/**\n* Reactive Screen Wake Lock API.\n*\n* @see https://vueuse.org/useWakeLock\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWakeLock(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, document: document$1 = defaultDocument } = options;\n\tconst requestedType = shallowRef(false);\n\tconst sentinel = shallowRef(null);\n\tconst documentVisibility = useDocumentVisibility({ document: document$1 });\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"wakeLock\" in navigator$1);\n\tconst isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n\tif (isSupported.value) {\n\t\tuseEventListener(sentinel, \"release\", () => {\n\t\t\tvar _sentinel$value$type, _sentinel$value;\n\t\t\trequestedType.value = (_sentinel$value$type = (_sentinel$value = sentinel.value) === null || _sentinel$value === void 0 ? void 0 : _sentinel$value.type) !== null && _sentinel$value$type !== void 0 ? _sentinel$value$type : false;\n\t\t}, { passive: true });\n\t\twhenever(() => documentVisibility.value === \"visible\" && (document$1 === null || document$1 === void 0 ? void 0 : document$1.visibilityState) === \"visible\" && requestedType.value, (type) => {\n\t\t\trequestedType.value = false;\n\t\t\tforceRequest(type);\n\t\t});\n\t}\n\tasync function forceRequest(type) {\n\t\tvar _sentinel$value2;\n\t\tawait ((_sentinel$value2 = sentinel.value) === null || _sentinel$value2 === void 0 ? void 0 : _sentinel$value2.release());\n\t\tsentinel.value = isSupported.value ? await navigator$1.wakeLock.request(type) : null;\n\t}\n\tasync function request(type) {\n\t\tif (documentVisibility.value === \"visible\") await forceRequest(type);\n\t\telse requestedType.value = type;\n\t}\n\tasync function release() {\n\t\trequestedType.value = false;\n\t\tconst s = sentinel.value;\n\t\tsentinel.value = null;\n\t\tawait (s === null || s === void 0 ? void 0 : s.release());\n\t}\n\treturn {\n\t\tsentinel,\n\t\tisSupported,\n\t\tisActive,\n\t\trequest,\n\t\tforceRequest,\n\t\trelease\n\t};\n}\n\n//#endregion\n//#region useWebNotification/index.ts\n/**\n* Reactive useWebNotification\n*\n* @see https://vueuse.org/useWebNotification\n* @see https://developer.mozilla.org/en-US/docs/Web/API/notification\n*/\nfunction useWebNotification(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions: _requestForPermissions = true } = options;\n\tconst defaultWebNotificationOptions = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (!window$1 || !(\"Notification\" in window$1)) return false;\n\t\tif (Notification.permission === \"granted\") return true;\n\t\ttry {\n\t\t\tconst notification$1 = new Notification(\"\");\n\t\t\tnotification$1.onshow = () => {\n\t\t\t\tnotification$1.close();\n\t\t\t};\n\t\t} catch (e) {\n\t\t\tif (e.name === \"TypeError\") return false;\n\t\t}\n\t\treturn true;\n\t});\n\tconst permissionGranted = shallowRef(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n\tconst notification = ref(null);\n\tconst ensurePermissions = async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionGranted.value && Notification.permission !== \"denied\") {\n\t\t\tif (await Notification.requestPermission() === \"granted\") permissionGranted.value = true;\n\t\t}\n\t\treturn permissionGranted.value;\n\t};\n\tconst { on: onClick, trigger: clickTrigger } = createEventHook();\n\tconst { on: onShow, trigger: showTrigger } = createEventHook();\n\tconst { on: onError, trigger: errorTrigger } = createEventHook();\n\tconst { on: onClose, trigger: closeTrigger } = createEventHook();\n\tconst show = async (overrides) => {\n\t\tif (!isSupported.value || !permissionGranted.value) return;\n\t\tconst options$1 = Object.assign({}, defaultWebNotificationOptions, overrides);\n\t\tnotification.value = new Notification(options$1.title || \"\", options$1);\n\t\tnotification.value.onclick = clickTrigger;\n\t\tnotification.value.onshow = showTrigger;\n\t\tnotification.value.onerror = errorTrigger;\n\t\tnotification.value.onclose = closeTrigger;\n\t\treturn notification.value;\n\t};\n\tconst close = () => {\n\t\tif (notification.value) notification.value.close();\n\t\tnotification.value = null;\n\t};\n\tif (_requestForPermissions) tryOnMounted(ensurePermissions);\n\ttryOnScopeDispose(close);\n\tif (isSupported.value && window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tuseEventListener(document$1, \"visibilitychange\", (e) => {\n\t\t\te.preventDefault();\n\t\t\tif (document$1.visibilityState === \"visible\") close();\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tnotification,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tshow,\n\t\tclose,\n\t\tonClick,\n\t\tonShow,\n\t\tonError,\n\t\tonClose\n\t};\n}\n\n//#endregion\n//#region useWebSocket/index.ts\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive WebSocket client.\n*\n* @see https://vueuse.org/useWebSocket\n* @param url\n*/\nfunction useWebSocket(url, options = {}) {\n\tconst { onConnected, onDisconnected, onError, onMessage, immediate = true, autoConnect = true, autoClose = true, protocols = [] } = options;\n\tconst data = ref(null);\n\tconst status = shallowRef(\"CLOSED\");\n\tconst wsRef = ref();\n\tconst urlRef = toRef(url);\n\tlet heartbeatPause;\n\tlet heartbeatResume;\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tlet bufferedData = [];\n\tlet retryTimeout;\n\tlet pongTimeoutWait;\n\tconst _sendBuffer = () => {\n\t\tif (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n\t\t\tfor (const buffer of bufferedData) wsRef.value.send(buffer);\n\t\t\tbufferedData = [];\n\t\t}\n\t};\n\tconst resetRetry = () => {\n\t\tif (retryTimeout != null) {\n\t\t\tclearTimeout(retryTimeout);\n\t\t\tretryTimeout = void 0;\n\t\t}\n\t};\n\tconst resetHeartbeat = () => {\n\t\tclearTimeout(pongTimeoutWait);\n\t\tpongTimeoutWait = void 0;\n\t};\n\tconst close = (code = 1e3, reason) => {\n\t\tresetRetry();\n\t\tif (!isClient && !isWorker || !wsRef.value) return;\n\t\texplicitlyClosed = true;\n\t\tresetHeartbeat();\n\t\theartbeatPause === null || heartbeatPause === void 0 || heartbeatPause();\n\t\twsRef.value.close(code, reason);\n\t\twsRef.value = void 0;\n\t};\n\tconst send = (data$1, useBuffer = true) => {\n\t\tif (!wsRef.value || status.value !== \"OPEN\") {\n\t\t\tif (useBuffer) bufferedData.push(data$1);\n\t\t\treturn false;\n\t\t}\n\t\t_sendBuffer();\n\t\twsRef.value.send(data$1);\n\t\treturn true;\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst ws = new WebSocket(urlRef.value, protocols);\n\t\twsRef.value = ws;\n\t\tstatus.value = \"CONNECTING\";\n\t\tws.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\tretried = 0;\n\t\t\tonConnected === null || onConnected === void 0 || onConnected(ws);\n\t\t\theartbeatResume === null || heartbeatResume === void 0 || heartbeatResume();\n\t\t\t_sendBuffer();\n\t\t};\n\t\tws.onclose = (ev) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\tresetHeartbeat();\n\t\t\theartbeatPause === null || heartbeatPause === void 0 || heartbeatPause();\n\t\t\tonDisconnected === null || onDisconnected === void 0 || onDisconnected(ws, ev);\n\t\t\tif (!explicitlyClosed && options.autoReconnect && (wsRef.value == null || ws === wsRef.value)) {\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions(options.autoReconnect);\n\t\t\t\tif ((typeof retries === \"function\" ? retries : () => typeof retries === \"number\" && (retries < 0 || retried < retries))(retried)) {\n\t\t\t\t\tretried += 1;\n\t\t\t\t\tretryTimeout = setTimeout(_init, delay);\n\t\t\t\t} else onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tws.onerror = (e) => {\n\t\t\tonError === null || onError === void 0 || onError(ws, e);\n\t\t};\n\t\tws.onmessage = (e) => {\n\t\t\tif (options.heartbeat) {\n\t\t\t\tresetHeartbeat();\n\t\t\t\tconst { message = DEFAULT_PING_MESSAGE, responseMessage = message } = resolveNestedOptions(options.heartbeat);\n\t\t\t\tif (e.data === toValue(responseMessage)) return;\n\t\t\t}\n\t\t\tdata.value = e.data;\n\t\t\tonMessage === null || onMessage === void 0 || onMessage(ws, e);\n\t\t};\n\t};\n\tif (options.heartbeat) {\n\t\tconst { message = DEFAULT_PING_MESSAGE, interval = 1e3, pongTimeout = 1e3 } = resolveNestedOptions(options.heartbeat);\n\t\tconst { pause, resume } = useIntervalFn(() => {\n\t\t\tsend(toValue(message), false);\n\t\t\tif (pongTimeoutWait != null) return;\n\t\t\tpongTimeoutWait = setTimeout(() => {\n\t\t\t\tclose();\n\t\t\t\texplicitlyClosed = false;\n\t\t\t}, pongTimeout);\n\t\t}, interval, { immediate: false });\n\t\theartbeatPause = pause;\n\t\theartbeatResume = resume;\n\t}\n\tif (autoClose) {\n\t\tif (isClient) useEventListener(\"beforeunload\", () => close(), { passive: true });\n\t\ttryOnScopeDispose(close);\n\t}\n\tconst open = () => {\n\t\tif (!isClient && !isWorker) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\treturn {\n\t\tdata,\n\t\tstatus,\n\t\tclose,\n\t\tsend,\n\t\topen,\n\t\tws: wsRef\n\t};\n}\n\n//#endregion\n//#region useWebWorker/index.ts\nfunction useWebWorker(arg0, workerOptions, options) {\n\tconst { window: window$1 = defaultWindow } = options !== null && options !== void 0 ? options : {};\n\tconst data = ref(null);\n\tconst worker = shallowRef();\n\tconst post = (...args) => {\n\t\tif (!worker.value) return;\n\t\tworker.value.postMessage(...args);\n\t};\n\tconst terminate = function terminate$1() {\n\t\tif (!worker.value) return;\n\t\tworker.value.terminate();\n\t};\n\tif (window$1) {\n\t\tif (typeof arg0 === \"string\") worker.value = new Worker(arg0, workerOptions);\n\t\telse if (typeof arg0 === \"function\") worker.value = arg0();\n\t\telse worker.value = arg0;\n\t\tworker.value.onmessage = (e) => {\n\t\t\tdata.value = e.data;\n\t\t};\n\t\ttryOnScopeDispose(() => {\n\t\t\tif (worker.value) worker.value.terminate();\n\t\t});\n\t}\n\treturn {\n\t\tdata,\n\t\tpost,\n\t\tterminate,\n\t\tworker\n\t};\n}\n\n//#endregion\n//#region useWebWorkerFn/lib/depsParser.ts\n/**\n*\n* Concatenates the dependencies into a comma separated string.\n* this string will then be passed as an argument to the \"importScripts\" function\n*\n* @param deps array of string\n* @param localDeps array of function\n* @returns a string composed by the concatenation of the array\n* elements \"deps\" and \"importScripts\".\n*\n* @example\n* depsParser(['demo1', 'demo2']) // return importScripts('demo1', 'demo2')\n*/\nfunction depsParser(deps, localDeps) {\n\tif (deps.length === 0 && localDeps.length === 0) return \"\";\n\tconst depsString = deps.map((dep) => `'${dep}'`).toString();\n\tconst depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n\t\tconst str = fn.toString();\n\t\tif (str.trim().startsWith(\"function\")) return str;\n\t\telse return `const ${fn.name} = ${str}`;\n\t}).join(\";\");\n\tconst importString = `importScripts(${depsString});`;\n\treturn `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\nvar depsParser_default = depsParser;\n\n//#endregion\n//#region useWebWorkerFn/lib/jobRunner.ts\n/**\n* This function accepts as a parameter a function \"userFunc\"\n* And as a result returns an anonymous function.\n* This anonymous function, accepts as arguments,\n* the parameters to pass to the function \"useArgs\" and returns a Promise\n* This function can be used as a wrapper, only inside a Worker\n* because it depends by \"postMessage\".\n*\n* @param userFunc {Function} fn the function to run with web worker\n*\n* @returns returns a function that accepts the parameters\n* to be passed to the \"userFunc\" function\n*/\nfunction jobRunner(userFunc) {\n\treturn (e) => {\n\t\tconst userFuncArgs = e.data[0];\n\t\treturn Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n\t\t\tpostMessage([\"SUCCESS\", result]);\n\t\t}).catch((error) => {\n\t\t\tpostMessage([\"ERROR\", error]);\n\t\t});\n\t};\n}\nvar jobRunner_default = jobRunner;\n\n//#endregion\n//#region useWebWorkerFn/lib/createWorkerBlobUrl.ts\n/**\n* Converts the \"fn\" function into the syntax needed to be executed within a web worker\n*\n* @param fn the function to run with web worker\n* @param deps array of strings, imported into the worker through \"importScripts\"\n* @param localDeps array of function, local dependencies\n*\n* @returns a blob url, containing the code of \"fn\" as a string\n*\n* @example\n* createWorkerBlobUrl((a,b) => a+b, [])\n* // return \"onmessage=return Promise.resolve((a,b) => a + b)\n* .then(postMessage(['SUCCESS', result]))\n* .catch(postMessage(['ERROR', error])\"\n*/\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n\tconst blobCode = `${depsParser_default(deps, localDeps)}; onmessage=(${jobRunner_default})(${fn})`;\n\tconst blob = new Blob([blobCode], { type: \"text/javascript\" });\n\treturn URL.createObjectURL(blob);\n}\nvar createWorkerBlobUrl_default = createWorkerBlobUrl;\n\n//#endregion\n//#region useWebWorkerFn/index.ts\n/**\n* Run expensive function without blocking the UI, using a simple syntax that makes use of Promise.\n*\n* @see https://vueuse.org/useWebWorkerFn\n* @param fn\n* @param options\n*/\nfunction useWebWorkerFn(fn, options = {}) {\n\tconst { dependencies = [], localDependencies = [], timeout, window: window$1 = defaultWindow } = options;\n\tconst worker = ref();\n\tconst workerStatus = shallowRef(\"PENDING\");\n\tconst promise = ref({});\n\tconst timeoutId = shallowRef();\n\tconst workerTerminate = (status = \"PENDING\") => {\n\t\tif (worker.value && worker.value._url && window$1) {\n\t\t\tworker.value.terminate();\n\t\t\tURL.revokeObjectURL(worker.value._url);\n\t\t\tpromise.value = {};\n\t\t\tworker.value = void 0;\n\t\t\twindow$1.clearTimeout(timeoutId.value);\n\t\t\tworkerStatus.value = status;\n\t\t}\n\t};\n\tworkerTerminate();\n\ttryOnScopeDispose(workerTerminate);\n\tconst generateWorker = () => {\n\t\tconst blobUrl = createWorkerBlobUrl_default(fn, dependencies, localDependencies);\n\t\tconst newWorker = new Worker(blobUrl);\n\t\tnewWorker._url = blobUrl;\n\t\tnewWorker.onmessage = (e) => {\n\t\t\tconst { resolve = () => {}, reject = () => {} } = promise.value;\n\t\t\tconst [status, result] = e.data;\n\t\t\tswitch (status) {\n\t\t\t\tcase \"SUCCESS\":\n\t\t\t\t\tresolve(result);\n\t\t\t\t\tworkerTerminate(status);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\treject(result);\n\t\t\t\t\tworkerTerminate(\"ERROR\");\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tnewWorker.onerror = (e) => {\n\t\t\tconst { reject = () => {} } = promise.value;\n\t\t\te.preventDefault();\n\t\t\treject(e);\n\t\t\tworkerTerminate(\"ERROR\");\n\t\t};\n\t\tif (timeout) timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n\t\treturn newWorker;\n\t};\n\tconst callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n\t\tvar _worker$value;\n\t\tpromise.value = {\n\t\t\tresolve,\n\t\t\treject\n\t\t};\n\t\t(_worker$value = worker.value) === null || _worker$value === void 0 || _worker$value.postMessage([[...fnArgs]]);\n\t\tworkerStatus.value = \"RUNNING\";\n\t});\n\tconst workerFn = (...fnArgs) => {\n\t\tif (workerStatus.value === \"RUNNING\") {\n\t\t\tconsole.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\n\t\t\treturn Promise.reject();\n\t\t}\n\t\tworker.value = generateWorker();\n\t\treturn callWorker(...fnArgs);\n\t};\n\treturn {\n\t\tworkerFn,\n\t\tworkerStatus,\n\t\tworkerTerminate\n\t};\n}\n\n//#endregion\n//#region useWindowFocus/index.ts\n/**\n* Reactively track window focus with `window.onfocus` and `window.onblur`.\n*\n* @see https://vueuse.org/useWindowFocus\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWindowFocus(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef(false);\n\tconst focused = shallowRef(window$1.document.hasFocus());\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(window$1, \"blur\", () => {\n\t\tfocused.value = false;\n\t}, listenerOptions);\n\tuseEventListener(window$1, \"focus\", () => {\n\t\tfocused.value = true;\n\t}, listenerOptions);\n\treturn focused;\n}\n\n//#endregion\n//#region useWindowScroll/index.ts\n/**\n* Reactive window scroll.\n*\n* @see https://vueuse.org/useWindowScroll\n* @param options\n*/\nfunction useWindowScroll(options = {}) {\n\tconst { window: window$1 = defaultWindow,...rest } = options;\n\treturn useScroll(window$1, rest);\n}\n\n//#endregion\n//#region useWindowSize/index.ts\n/**\n* Reactive window size.\n*\n* @see https://vueuse.org/useWindowSize\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useWindowSize(options = {}) {\n\tconst { window: window$1 = defaultWindow, initialWidth = Number.POSITIVE_INFINITY, initialHeight = Number.POSITIVE_INFINITY, listenOrientation = true, includeScrollbar = true, type = \"inner\" } = options;\n\tconst width = shallowRef(initialWidth);\n\tconst height = shallowRef(initialHeight);\n\tconst update = () => {\n\t\tif (window$1) if (type === \"outer\") {\n\t\t\twidth.value = window$1.outerWidth;\n\t\t\theight.value = window$1.outerHeight;\n\t\t} else if (type === \"visual\" && window$1.visualViewport) {\n\t\t\tconst { width: visualViewportWidth, height: visualViewportHeight, scale } = window$1.visualViewport;\n\t\t\twidth.value = Math.round(visualViewportWidth * scale);\n\t\t\theight.value = Math.round(visualViewportHeight * scale);\n\t\t} else if (includeScrollbar) {\n\t\t\twidth.value = window$1.innerWidth;\n\t\t\theight.value = window$1.innerHeight;\n\t\t} else {\n\t\t\twidth.value = window$1.document.documentElement.clientWidth;\n\t\t\theight.value = window$1.document.documentElement.clientHeight;\n\t\t}\n\t};\n\tupdate();\n\ttryOnMounted(update);\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"resize\", update, listenerOptions);\n\tif (window$1 && type === \"visual\" && window$1.visualViewport) useEventListener(window$1.visualViewport, \"resize\", update, listenerOptions);\n\tif (listenOrientation) watch(useMediaQuery(\"(orientation: portrait)\"), () => update());\n\treturn {\n\t\twidth,\n\t\theight\n\t};\n}\n\n//#endregion\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsElement, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, formatTimeAgoIntl, formatTimeAgoIntlParts, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onElementRemoval, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, provideSSRWidth, setSSRHandler, templateRef, transition, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCountdown, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, usePrevious, useRafFn, useRefHistory, useResizeObserver, useSSRWidth, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeAgoIntl, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };","export const qdFormGutter = [16, 16]\n\nexport const qdFormGrid = {\n col: {\n xs: 12,\n sm: 6,\n md: 6,\n lg: 4,\n xl: 3,\n xxl: 3\n }\n}\n\nexport const qdFormProps = {\n gutter: () => qdFormGutter,\n grid: () => qdFormGrid,\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: () => ({}) as any,\n\n disabled: undefined,\n readonly: undefined,\n labelAlign: 'top',\n labelWidth: 'auto',\n requiredMarkPosition: 'left',\n resetType: 'initial',\n scrollToFirstError: 'smooth',\n preventSubmitDefault: true,\n requiredMark: undefined,\n showErrorMessage: true,\n statusIcon: undefined,\n defaultClearable: undefined\n} as const\n\nexport const qdFormItemProps = {\n requiredMark: undefined,\n showErrorMessage: undefined,\n statusIcon: undefined,\n successBorder: false,\n defaultClearable: undefined\n} as const\n","export const qdServiceTableProps = {\n data: () => [],\n selectedRowKeys: () => [],\n activeRowKeys: () => [],\n columnControllerVisible: undefined,\n displayColumns: undefined,\n expandedRowKeys: () => [],\n filterValue: undefined,\n sort: undefined,\n expandedTreeNodes: () => [],\n\n rowKey: 'id',\n expandIcon: true,\n selectOnRowClick: undefined,\n bordered: true,\n keyboardRowHover: true,\n lazyLoad: true,\n showHeader: true,\n maxHeight: '100%',\n hover: true,\n reserveSelectedRowOnPaginate: false,\n expandOnRowClick: undefined,\n hideSortTips: undefined,\n multipleSort: undefined,\n rowSelectionAllowUncheck: undefined,\n disableSpaceInactiveRow: undefined,\n horizontalScrollAffixedBottom: undefined,\n paginationAffixedBottom: undefined,\n pagination: undefined\n} as const\n\nexport const qdServiceTableTreeConfig = {\n checkStrictly: true,\n childrenKey: 'children'\n} as const\n\nexport const qdServiceSelectProps = {\n manual: true,\n showArrow: true,\n popupVisible: undefined,\n disabled: undefined,\n clearable: false,\n readonly: undefined,\n valueType: 'value',\n filterable: undefined,\n pagination: undefined,\n searchKey: undefined,\n convStr: false\n} as const\n\nexport const qdServiceSelectKeys = {\n value: 'value',\n label: 'label',\n disabled: 'disabled',\n children: 'children'\n}\n\nexport const qdServiceListProps = {\n data: () => []\n} as const\n","import { qdFormProps } from '../form/props'\nimport { qdServiceListProps, qdServiceTableProps } from '../service/props'\n\nexport const qdCrudSearchProps = {\n ...qdFormProps,\n defaultClearable: true,\n\n grid: () => ({\n col: {\n xs: 12,\n sm: 4,\n md: 4,\n lg: 4,\n xl: 3,\n xxl: 2\n }\n })\n} as const\n\nexport const qdCrudTableProps = {\n ...qdServiceTableProps,\n\n searchData: () => ({}),\n form: undefined,\n add: undefined,\n actions: undefined,\n edit: undefined,\n view: undefined,\n del: undefined,\n rowActions: undefined\n} as const\n\nexport const qdCrudListProps = {\n ...qdServiceListProps,\n\n searchData: () => ({})\n}\n","function authPermission(permission: string) {\n const allPermission = '*:*:*'\n const user = window.__QIDIAN_USER__\n if (!user) {\n console.warn('[auth] 用户信息未提供,请确保使用了 QdConfigProvider')\n return false\n }\n\n const { permissions = [] } = user\n if (permission?.length) {\n return permissions.some((v) => allPermission === v || v === permission)\n }\n\n return false\n}\n\nfunction authRole(role: string) {\n const superAdmin = 'admin'\n const user = window.__QIDIAN_USER__\n if (!user) {\n console.warn('[auth] 用户信息未提供,请确保使用了 QdConfigProvider')\n return false\n }\n\n const { roles = [] } = user\n if (role?.length) {\n return roles.some((v) => superAdmin === v || v === role)\n }\n\n return false\n}\n\n/**\n * 验证用户是否具备某权限\n * @param permission\n * @returns\n */\nexport function hasPermi(permission: string) {\n return authPermission(permission)\n}\n\n/**\n * 验证用户是否含有指定权限,只需包含其中一个\n * @param permission\n * @returns\n */\nexport function hasPermiOr(permissions: string[]) {\n return permissions.some((item) => {\n return authPermission(item)\n })\n}\n\n/**\n * 验证用户是否含有指定权限,必须全部拥有\n * @param permission\n * @returns\n */\nexport function hasPermiAnd(permissions: string[]) {\n return permissions.every((item) => {\n return authPermission(item)\n })\n}\n\n/**\n * 验证用户是否具备某角色\n * @param permission\n * @returns\n */\nexport function hasRole(role: string) {\n return authRole(role)\n}\n\n/**\n * 验证用户是否含有指定角色,只需包含其中一个\n * @param permission\n * @returns\n */\nexport function hasRoleOr(roles: string[]) {\n return roles.some((item) => {\n return authRole(item)\n })\n}\n\n/**\n * 验证用户是否含有指定角色,必须全部拥有\n * @param permission\n * @returns\n */\nexport function hasRoleAnd(roles: string[]) {\n return roles.every((item) => {\n return authRole(item)\n })\n}\n","import type { App, DirectiveBinding } from 'vue'\nimport { auth } from '../utils'\n\nexport interface HasPermiDirectiveBinding extends DirectiveBinding {\n value: string[] | undefined\n}\n\n/**\n * v-hasPermi 操作权限处理\n */\nexport const hasPermiDirective = {\n mounted(el: HTMLElement, binding: HasPermiDirectiveBinding) {\n checkPermission(el, binding)\n },\n\n updated(el: HTMLElement, binding: HasPermiDirectiveBinding) {\n checkPermission(el, binding)\n }\n}\n\nfunction checkPermission(el: HTMLElement, binding: HasPermiDirectiveBinding) {\n const { value } = binding\n\n if (!value) return\n\n if (value instanceof Array) {\n if (!value.length) return\n\n const hasPermissions = auth.hasPermiOr(value)\n if (hasPermissions) return\n\n el.parentNode?.removeChild(el)\n return\n }\n}\n\nexport const hasPermi = {\n install(app: App) {\n app.directive('hasPermi', hasPermiDirective)\n }\n}\n\nexport default hasPermi\n","import type { App, DirectiveBinding } from 'vue'\nimport { auth } from '../utils'\n\nexport interface HasRoleDirectiveBinding extends DirectiveBinding {\n value: string[] | undefined\n}\n\n/**\n * v-hasRole 角色权限处理\n */\nexport const hasRoleDirective = {\n mounted(el: HTMLElement, binding: HasRoleDirectiveBinding) {\n checkRole(el, binding)\n },\n\n updated(el: HTMLElement, binding: HasRoleDirectiveBinding) {\n checkRole(el, binding)\n }\n}\n\nfunction checkRole(el: HTMLElement, binding: HasRoleDirectiveBinding) {\n const { value } = binding\n if (!value) return\n\n if (value instanceof Array) {\n if (!value.length) return\n\n const hasRole = auth.hasRoleOr(value)\n if (hasRole) return\n\n el.parentNode?.removeChild(el)\n return\n }\n}\n\nexport const hasRole = {\n install(app: App) {\n app.directive('hasRole', hasRoleDirective)\n }\n}\n\nexport default hasRole\n","/**\n * tdesign v1.17.1\n * (c) 2025 tdesign\n * @license MIT\n */\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nexport { _typeof as _ };\n//# sourceMappingURL=dep-c68053ef.mjs.map\n","/**\n * tdesign v1.17.1\n * (c) 2025 tdesign\n * @license MIT\n */\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nfunction getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n\tif (typeof f == \"function\") {\n\t\tvar a = function a () {\n\t\t\tif (this instanceof a) {\n\t\t\t\tvar args = [null];\n\t\t\t\targs.push.apply(args, arguments);\n\t\t\t\tvar Ctor = Function.bind.apply(f, args);\n\t\t\t\treturn new Ctor();\n\t\t\t}\n\t\t\treturn f.apply(this, arguments);\n\t\t};\n\t\ta.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nexport { commonjsGlobal as c, getDefaultExportFromCjs as g };\n//# sourceMappingURL=dep-8c6ad426.mjs.map\n","/**\n * tdesign v1.17.1\n * (c) 2025 tdesign\n * @license MIT\n */\n\nimport { _ as _typeof } from './dep-c68053ef.mjs';\nimport { c as commonjsGlobal, g as getDefaultExportFromCjs } from './dep-8c6ad426.mjs';\n\nvar dayjs_min$1 = {exports: {}};\n\nvar dayjs_min = dayjs_min$1.exports;\n(function (module, exports) {\n !function (t, e) {\n \"object\" == 'object' && \"undefined\" != 'object' ? module.exports = e() : \"function\" == typeof undefined && undefined.amd ? undefined(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs = e();\n }(commonjsGlobal, function () {\n \"use strict\";\n\n var t = 1e3,\n e = 6e4,\n n = 36e5,\n r = \"millisecond\",\n i = \"second\",\n s = \"minute\",\n u = \"hour\",\n a = \"day\",\n o = \"week\",\n c = \"month\",\n f = \"quarter\",\n h = \"year\",\n d = \"date\",\n l = \"Invalid Date\",\n $ = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,\n y = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,\n M = {\n name: \"en\",\n weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),\n months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),\n ordinal: function ordinal(t) {\n var e = [\"th\", \"st\", \"nd\", \"rd\"],\n n = t % 100;\n return \"[\" + t + (e[(n - 20) % 10] || e[n] || e[0]) + \"]\";\n }\n },\n m = function m(t, e, n) {\n var r = String(t);\n return !r || r.length >= e ? t : \"\" + Array(e + 1 - r.length).join(n) + t;\n },\n v = {\n s: m,\n z: function z(t) {\n var e = -t.utcOffset(),\n n = Math.abs(e),\n r = Math.floor(n / 60),\n i = n % 60;\n return (e <= 0 ? \"+\" : \"-\") + m(r, 2, \"0\") + \":\" + m(i, 2, \"0\");\n },\n m: function t(e, n) {\n if (e.date() < n.date()) return -t(n, e);\n var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),\n i = e.clone().add(r, c),\n s = n - i < 0,\n u = e.clone().add(r + (s ? -1 : 1), c);\n return +(-(r + (n - i) / (s ? i - u : u - i)) || 0);\n },\n a: function a(t) {\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);\n },\n p: function p(t) {\n return {\n M: c,\n y: h,\n w: o,\n d: a,\n D: d,\n h: u,\n m: s,\n s: i,\n ms: r,\n Q: f\n }[t] || String(t || \"\").toLowerCase().replace(/s$/, \"\");\n },\n u: function u(t) {\n return void 0 === t;\n }\n },\n g = \"en\",\n D = {};\n D[g] = M;\n var p = \"$isDayjsObject\",\n S = function S(t) {\n return t instanceof _ || !(!t || !t[p]);\n },\n w = function t(e, n, r) {\n var i;\n if (!e) return g;\n if (\"string\" == typeof e) {\n var s = e.toLowerCase();\n D[s] && (i = s), n && (D[s] = n, i = s);\n var u = e.split(\"-\");\n if (!i && u.length > 1) return t(u[0]);\n } else {\n var a = e.name;\n D[a] = e, i = a;\n }\n return !r && i && (g = i), i || !r && g;\n },\n O = function O(t, e) {\n if (S(t)) return t.clone();\n var n = \"object\" == _typeof(e) ? e : {};\n return n.date = t, n.args = arguments, new _(n);\n },\n b = v;\n b.l = w, b.i = S, b.w = function (t, e) {\n return O(t, {\n locale: e.$L,\n utc: e.$u,\n x: e.$x,\n $offset: e.$offset\n });\n };\n var _ = function () {\n function M(t) {\n this.$L = w(t.locale, null, !0), this.parse(t), this.$x = this.$x || t.x || {}, this[p] = !0;\n }\n var m = M.prototype;\n return m.parse = function (t) {\n this.$d = function (t) {\n var e = t.date,\n n = t.utc;\n if (null === e) return new Date(NaN);\n if (b.u(e)) return new Date();\n if (e instanceof Date) return new Date(e);\n if (\"string\" == typeof e && !/Z$/i.test(e)) {\n var r = e.match($);\n if (r) {\n var i = r[2] - 1 || 0,\n s = (r[7] || \"0\").substring(0, 3);\n return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s);\n }\n }\n return new Date(e);\n }(t), this.init();\n }, m.init = function () {\n var t = this.$d;\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds();\n }, m.$utils = function () {\n return b;\n }, m.isValid = function () {\n return !(this.$d.toString() === l);\n }, m.isSame = function (t, e) {\n var n = O(t);\n return this.startOf(e) <= n && n <= this.endOf(e);\n }, m.isAfter = function (t, e) {\n return O(t) < this.startOf(e);\n }, m.isBefore = function (t, e) {\n return this.endOf(e) < O(t);\n }, m.$g = function (t, e, n) {\n return b.u(t) ? this[e] : this.set(n, t);\n }, m.unix = function () {\n return Math.floor(this.valueOf() / 1e3);\n }, m.valueOf = function () {\n return this.$d.getTime();\n }, m.startOf = function (t, e) {\n var n = this,\n r = !!b.u(e) || e,\n f = b.p(t),\n l = function l(t, e) {\n var i = b.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);\n return r ? i : i.endOf(a);\n },\n $ = function $(t, e) {\n return b.w(n.toDate()[t].apply(n.toDate(\"s\"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), n);\n },\n y = this.$W,\n M = this.$M,\n m = this.$D,\n v = \"set\" + (this.$u ? \"UTC\" : \"\");\n switch (f) {\n case h:\n return r ? l(1, 0) : l(31, 11);\n case c:\n return r ? l(1, M) : l(0, M + 1);\n case o:\n var g = this.$locale().weekStart || 0,\n D = (y < g ? y + 7 : y) - g;\n return l(r ? m - D : m + (6 - D), M);\n case a:\n case d:\n return $(v + \"Hours\", 0);\n case u:\n return $(v + \"Minutes\", 1);\n case s:\n return $(v + \"Seconds\", 2);\n case i:\n return $(v + \"Milliseconds\", 3);\n default:\n return this.clone();\n }\n }, m.endOf = function (t) {\n return this.startOf(t, !1);\n }, m.$set = function (t, e) {\n var n,\n o = b.p(t),\n f = \"set\" + (this.$u ? \"UTC\" : \"\"),\n l = (n = {}, n[a] = f + \"Date\", n[d] = f + \"Date\", n[c] = f + \"Month\", n[h] = f + \"FullYear\", n[u] = f + \"Hours\", n[s] = f + \"Minutes\", n[i] = f + \"Seconds\", n[r] = f + \"Milliseconds\", n)[o],\n $ = o === a ? this.$D + (e - this.$W) : e;\n if (o === c || o === h) {\n var y = this.clone().set(d, 1);\n y.$d[l]($), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d;\n } else l && this.$d[l]($);\n return this.init(), this;\n }, m.set = function (t, e) {\n return this.clone().$set(t, e);\n }, m.get = function (t) {\n return this[b.p(t)]();\n }, m.add = function (r, f) {\n var d,\n l = this;\n r = Number(r);\n var $ = b.p(f),\n y = function y(t) {\n var e = O(l);\n return b.w(e.date(e.date() + Math.round(t * r)), l);\n };\n if ($ === c) return this.set(c, this.$M + r);\n if ($ === h) return this.set(h, this.$y + r);\n if ($ === a) return y(1);\n if ($ === o) return y(7);\n var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[$] || 1,\n m = this.$d.getTime() + r * M;\n return b.w(m, this);\n }, m.subtract = function (t, e) {\n return this.add(-1 * t, e);\n }, m.format = function (t) {\n var e = this,\n n = this.$locale();\n if (!this.isValid()) return n.invalidDate || l;\n var r = t || \"YYYY-MM-DDTHH:mm:ssZ\",\n i = b.z(this),\n s = this.$H,\n u = this.$m,\n a = this.$M,\n o = n.weekdays,\n c = n.months,\n f = n.meridiem,\n h = function h(t, n, i, s) {\n return t && (t[n] || t(e, r)) || i[n].slice(0, s);\n },\n d = function d(t) {\n return b.s(s % 12 || 12, t, \"0\");\n },\n $ = f || function (t, e, n) {\n var r = t < 12 ? \"AM\" : \"PM\";\n return n ? r.toLowerCase() : r;\n };\n return r.replace(y, function (t, r) {\n return r || function (t) {\n switch (t) {\n case \"YY\":\n return String(e.$y).slice(-2);\n case \"YYYY\":\n return b.s(e.$y, 4, \"0\");\n case \"M\":\n return a + 1;\n case \"MM\":\n return b.s(a + 1, 2, \"0\");\n case \"MMM\":\n return h(n.monthsShort, a, c, 3);\n case \"MMMM\":\n return h(c, a);\n case \"D\":\n return e.$D;\n case \"DD\":\n return b.s(e.$D, 2, \"0\");\n case \"d\":\n return String(e.$W);\n case \"dd\":\n return h(n.weekdaysMin, e.$W, o, 2);\n case \"ddd\":\n return h(n.weekdaysShort, e.$W, o, 3);\n case \"dddd\":\n return o[e.$W];\n case \"H\":\n return String(s);\n case \"HH\":\n return b.s(s, 2, \"0\");\n case \"h\":\n return d(1);\n case \"hh\":\n return d(2);\n case \"a\":\n return $(s, u, !0);\n case \"A\":\n return $(s, u, !1);\n case \"m\":\n return String(u);\n case \"mm\":\n return b.s(u, 2, \"0\");\n case \"s\":\n return String(e.$s);\n case \"ss\":\n return b.s(e.$s, 2, \"0\");\n case \"SSS\":\n return b.s(e.$ms, 3, \"0\");\n case \"Z\":\n return i;\n }\n return null;\n }(t) || i.replace(\":\", \"\");\n });\n }, m.utcOffset = function () {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, m.diff = function (r, d, l) {\n var $,\n y = this,\n M = b.p(d),\n m = O(r),\n v = (m.utcOffset() - this.utcOffset()) * e,\n g = this - m,\n D = function D() {\n return b.m(y, m);\n };\n switch (M) {\n case h:\n $ = D() / 12;\n break;\n case c:\n $ = D();\n break;\n case f:\n $ = D() / 3;\n break;\n case o:\n $ = (g - v) / 6048e5;\n break;\n case a:\n $ = (g - v) / 864e5;\n break;\n case u:\n $ = g / n;\n break;\n case s:\n $ = g / e;\n break;\n case i:\n $ = g / t;\n break;\n default:\n $ = g;\n }\n return l ? $ : b.a($);\n }, m.daysInMonth = function () {\n return this.endOf(c).$D;\n }, m.$locale = function () {\n return D[this.$L];\n }, m.locale = function (t, e) {\n if (!t) return this.$L;\n var n = this.clone(),\n r = w(t, e, !0);\n return r && (n.$L = r), n;\n }, m.clone = function () {\n return b.w(this.$d, this);\n }, m.toDate = function () {\n return new Date(this.valueOf());\n }, m.toJSON = function () {\n return this.isValid() ? this.toISOString() : null;\n }, m.toISOString = function () {\n return this.$d.toISOString();\n }, m.toString = function () {\n return this.$d.toUTCString();\n }, M;\n }(),\n k = _.prototype;\n return O.prototype = k, [[\"$ms\", r], [\"$s\", i], [\"$m\", s], [\"$H\", u], [\"$W\", a], [\"$M\", c], [\"$y\", h], [\"$D\", d]].forEach(function (t) {\n k[t[1]] = function (e) {\n return this.$g(e, t[0], t[1]);\n };\n }), O.extend = function (t, e) {\n return t.$i || (t(e, _, O), t.$i = !0), O;\n }, O.locale = w, O.isDayjs = S, O.unix = function (t) {\n return O(1e3 * t);\n }, O.en = D[g], O.Ls = D, O.p = {}, O;\n });\n})(dayjs_min$1, dayjs_min$1.exports);\nvar dayjs_minExports = dayjs_min$1.exports;\nvar dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);\n\nexport { dayjs_minExports as a, dayjs as d };\n//# sourceMappingURL=dep-0f6107c9.mjs.map\n","/**\n * tdesign v1.17.1\n * (c) 2025 tdesign\n * @license MIT\n */\n\nimport { _ as _typeof } from './dep-c68053ef.mjs';\nimport { c as commonjsGlobal, g as getDefaultExportFromCjs } from './dep-8c6ad426.mjs';\nimport './dep-5e12f8d0.mjs';\nimport { a as dayjs_minExports } from './dep-0f6107c9.mjs';\n\nvar zhCn$3 = {exports: {}};\n\nvar zhCn$1 = zhCn$3.exports;\n(function (module, exports) {\n !function (e, _) {\n \"object\" == 'object' && \"undefined\" != 'object' ? module.exports = _(dayjs_minExports) : \"function\" == typeof undefined && undefined.amd ? undefined([\"dayjs\"], _) : (e = \"undefined\" != typeof globalThis ? globalThis : e || self).dayjs_locale_zh_cn = _(e.dayjs);\n }(commonjsGlobal, function (e) {\n \"use strict\";\n\n function _(e) {\n return e && \"object\" == _typeof(e) && \"default\" in e ? e : {\n \"default\": e\n };\n }\n var t = _(e),\n d = {\n name: \"zh-cn\",\n weekdays: \"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),\n weekdaysShort: \"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),\n weekdaysMin: \"日_一_二_三_四_五_六\".split(\"_\"),\n months: \"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),\n monthsShort: \"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),\n ordinal: function ordinal(e, _) {\n return \"W\" === _ ? e + \"周\" : e + \"日\";\n },\n weekStart: 1,\n yearStart: 4,\n formats: {\n LT: \"HH:mm\",\n LTS: \"HH:mm:ss\",\n L: \"YYYY/MM/DD\",\n LL: \"YYYY年M月D日\",\n LLL: \"YYYY年M月D日Ah点mm分\",\n LLLL: \"YYYY年M月D日ddddAh点mm分\",\n l: \"YYYY/M/D\",\n ll: \"YYYY年M月D日\",\n lll: \"YYYY年M月D日 HH:mm\",\n llll: \"YYYY年M月D日dddd HH:mm\"\n },\n relativeTime: {\n future: \"%s内\",\n past: \"%s前\",\n s: \"几秒\",\n m: \"1 分钟\",\n mm: \"%d 分钟\",\n h: \"1 小时\",\n hh: \"%d 小时\",\n d: \"1 天\",\n dd: \"%d 天\",\n M: \"1 个月\",\n MM: \"%d 个月\",\n y: \"1 年\",\n yy: \"%d 年\"\n },\n meridiem: function meridiem(e, _) {\n var t = 100 * e + _;\n return t < 600 ? \"凌晨\" : t < 900 ? \"早上\" : t < 1100 ? \"上午\" : t < 1300 ? \"中午\" : t < 1800 ? \"下午\" : \"晚上\";\n }\n };\n return t[\"default\"].locale(d, null, !0), d;\n });\n})(zhCn$3, zhCn$3.exports);\nvar zhCnExports = zhCn$3.exports;\nvar zhCn$2 = /*@__PURE__*/getDefaultExportFromCjs(zhCnExports);\n\nvar zhCn = {\n autoComplete: {\n empty: \"\\u6682\\u65E0\\u6570\\u636E\"\n },\n pagination: {\n itemsPerPage: \"{size} \\u6761/\\u9875\",\n jumpTo: \"\\u8DF3\\u81F3\",\n page: \"\\u9875\",\n total: \"\\u5171 {count} \\u6761\\u6570\\u636E\"\n },\n cascader: {\n empty: \"\\u6682\\u65E0\\u6570\\u636E\",\n loadingText: \"\\u52A0\\u8F7D\\u4E2D\",\n placeholder: \"\\u8BF7\\u9009\\u62E9\"\n },\n calendar: {\n yearSelection: \"{year} \\u5E74\",\n monthSelection: \"{month} \\u6708\",\n yearRadio: \"\\u5E74\",\n monthRadio: \"\\u6708\",\n hideWeekend: \"\\u9690\\u85CF\\u5468\\u672B\",\n showWeekend: \"\\u663E\\u793A\\u5468\\u672B\",\n today: \"\\u4ECA\\u5929\",\n thisMonth: \"\\u672C\\u6708\",\n week: \"\\u4E00,\\u4E8C,\\u4E09,\\u56DB,\\u4E94,\\u516D,\\u65E5\",\n cellMonth: \"1 \\u6708,2 \\u6708,3 \\u6708,4 \\u6708,5 \\u6708,6 \\u6708,7 \\u6708,8 \\u6708,9 \\u6708,10 \\u6708,11 \\u6708,12 \\u6708\"\n },\n transfer: {\n title: \"{checked} / {total} \\u9879\",\n empty: \"\\u6682\\u65E0\\u6570\\u636E\",\n placeholder: \"\\u8BF7\\u8F93\\u5165\\u5173\\u952E\\u8BCD\\u641C\\u7D22\"\n },\n timePicker: {\n dayjsLocale: \"zh-cn\",\n now: \"\\u6B64\\u523B\",\n confirm: \"\\u786E\\u5B9A\",\n anteMeridiem: \"\\u4E0A\\u5348\",\n postMeridiem: \"\\u4E0B\\u5348\",\n placeholder: \"\\u9009\\u62E9\\u65F6\\u95F4\"\n },\n dialog: {\n confirm: \"\\u786E\\u8BA4\",\n cancel: \"\\u53D6\\u6D88\"\n },\n drawer: {\n confirm: \"\\u786E\\u8BA4\",\n cancel: \"\\u53D6\\u6D88\"\n },\n popconfirm: {\n confirm: {\n content: \"\\u786E\\u5B9A\"\n },\n cancel: {\n content: \"\\u53D6\\u6D88\"\n }\n },\n table: {\n empty: \"\\u6682\\u65E0\\u6570\\u636E\",\n loadingText: \"\\u6B63\\u5728\\u52A0\\u8F7D\\u4E2D\\uFF0C\\u8BF7\\u7A0D\\u540E\",\n loadingMoreText: \"\\u70B9\\u51FB\\u52A0\\u8F7D\\u66F4\\u591A\",\n filterInputPlaceholder: \"\\u8BF7\\u8F93\\u5165\\u5185\\u5BB9\\uFF08\\u65E0\\u9ED8\\u8BA4\\u503C\\uFF09\",\n sortAscendingOperationText: \"\\u70B9\\u51FB\\u5347\\u5E8F\",\n sortCancelOperationText: \"\\u70B9\\u51FB\\u53D6\\u6D88\\u6392\\u5E8F\",\n sortDescendingOperationText: \"\\u70B9\\u51FB\\u964D\\u5E8F\",\n clearFilterResultButtonText: \"\\u6E05\\u7A7A\\u7B5B\\u9009\",\n columnConfigButtonText: \"\\u5217\\u914D\\u7F6E\",\n columnConfigTitleText: \"\\u8868\\u683C\\u5217\\u914D\\u7F6E\",\n columnConfigDescriptionText: \"\\u8BF7\\u9009\\u62E9\\u9700\\u8981\\u5728\\u8868\\u683C\\u4E2D\\u663E\\u793A\\u7684\\u6570\\u636E\\u5217\",\n confirmText: \"\\u786E\\u8BA4\",\n cancelText: \"\\u53D6\\u6D88\",\n resetText: \"\\u91CD\\u7F6E\",\n selectAllText: \"\\u5168\\u9009\",\n searchResultText: \"\\u641C\\u7D22\\u201C{result}\\u201D\\uFF0C\\u627E\\u5230 {count} \\u6761\\u7ED3\\u679C\"\n },\n select: {\n empty: \"\\u6682\\u65E0\\u6570\\u636E\",\n loadingText: \"\\u52A0\\u8F7D\\u4E2D\",\n placeholder: \"\\u8BF7\\u9009\\u62E9\"\n },\n tree: {\n empty: \"\\u6682\\u65E0\\u6570\\u636E\"\n },\n treeSelect: {\n empty: \"\\u6682\\u65E0\\u6570\\u636E\",\n loadingText: \"\\u52A0\\u8F7D\\u4E2D\",\n placeholder: \"\\u8BF7\\u9009\\u62E9\"\n },\n datePicker: {\n dayjsLocale: \"zh-cn\",\n placeholder: {\n date: \"\\u8BF7\\u9009\\u62E9\\u65E5\\u671F\",\n month: \"\\u8BF7\\u9009\\u62E9\\u6708\\u4EFD\",\n year: \"\\u8BF7\\u9009\\u62E9\\u5E74\\u4EFD\",\n quarter: \"\\u8BF7\\u9009\\u62E9\\u5B63\\u5EA6\",\n week: \"\\u8BF7\\u9009\\u62E9\\u5468\"\n },\n weekdays: [\"\\u4E00\", \"\\u4E8C\", \"\\u4E09\", \"\\u56DB\", \"\\u4E94\", \"\\u516D\", \"\\u65E5\"],\n months: [\"1 \\u6708\", \"2 \\u6708\", \"3 \\u6708\", \"4 \\u6708\", \"5 \\u6708\", \"6 \\u6708\", \"7 \\u6708\", \"8 \\u6708\", \"9 \\u6708\", \"10 \\u6708\", \"11 \\u6708\", \"12 \\u6708\"],\n quarters: [\"\\u4E00\\u5B63\\u5EA6\", \"\\u4E8C\\u5B63\\u5EA6\", \"\\u4E09\\u5B63\\u5EA6\", \"\\u56DB\\u5B63\\u5EA6\"],\n rangeSeparator: \" - \",\n direction: \"ltr\",\n format: \"YYYY-MM-DD\",\n dayAriaLabel: \"\\u65E5\",\n weekAbbreviation: \"\\u5468\",\n yearAriaLabel: \"\\u5E74\",\n monthAriaLabel: \"\\u6708\",\n confirm: \"\\u786E\\u5B9A\",\n selectTime: \"\\u9009\\u62E9\\u65F6\\u95F4\",\n selectDate: \"\\u9009\\u62E9\\u65E5\\u671F\",\n nextYear: \"\\u4E0B\\u4E00\\u5E74\",\n preYear: \"\\u4E0A\\u4E00\\u5E74\",\n nextMonth: \"\\u4E0B\\u4E2A\\u6708\",\n preMonth: \"\\u4E0A\\u4E2A\\u6708\",\n preDecade: \"\\u4E0A\\u4E2A\\u5341\\u5E74\",\n nextDecade: \"\\u4E0B\\u4E2A\\u5341\\u5E74\",\n now: \"\\u5F53\\u524D\"\n },\n upload: {\n sizeLimitMessage: \"\\u6587\\u4EF6\\u5927\\u5C0F\\u4E0D\\u80FD\\u8D85\\u8FC7 {sizeLimit}\",\n cancelUploadText: \"\\u53D6\\u6D88\\u4E0A\\u4F20\",\n triggerUploadText: {\n fileInput: \"\\u9009\\u62E9\\u6587\\u4EF6\",\n image: \"\\u70B9\\u51FB\\u4E0A\\u4F20\\u56FE\\u7247\",\n normal: \"\\u70B9\\u51FB\\u4E0A\\u4F20\",\n reupload: \"\\u91CD\\u65B0\\u9009\\u62E9\",\n continueUpload: \"\\u7EE7\\u7EED\\u9009\\u62E9\",\n \"delete\": \"\\u5220\\u9664\",\n uploading: \"\\u4E0A\\u4F20\\u4E2D\"\n },\n dragger: {\n dragDropText: \"\\u91CA\\u653E\\u9F20\\u6807\",\n draggingText: \"\\u62D6\\u62FD\\u5230\\u6B64\\u533A\\u57DF\",\n clickAndDragText: \"\\u70B9\\u51FB\\u4E0A\\u65B9\\u201C\\u9009\\u62E9\\u6587\\u4EF6\\u201D\\u6216\\u5C06\\u6587\\u4EF6\\u62D6\\u62FD\\u5230\\u6B64\\u533A\\u57DF\"\n },\n file: {\n fileNameText: \"\\u6587\\u4EF6\\u540D\",\n fileSizeText: \"\\u6587\\u4EF6\\u5927\\u5C0F\",\n fileStatusText: \"\\u72B6\\u6001\",\n fileOperationText: \"\\u64CD\\u4F5C\",\n fileOperationDateText: \"\\u4E0A\\u4F20\\u65E5\\u671F\"\n },\n progress: {\n uploadingText: \"\\u4E0A\\u4F20\\u4E2D\",\n waitingText: \"\\u5F85\\u4E0A\\u4F20\",\n failText: \"\\u4E0A\\u4F20\\u5931\\u8D25\",\n successText: \"\\u4E0A\\u4F20\\u6210\\u529F\"\n }\n },\n form: {\n errorMessage: {\n date: \"\\u8BF7\\u8F93\\u5165\\u6B63\\u786E\\u7684${name}\",\n url: \"\\u8BF7\\u8F93\\u5165\\u6B63\\u786E\\u7684${name}\",\n required: \"${name}\\u5FC5\\u586B\",\n whitespace: \"${name}\\u4E0D\\u80FD\\u4E3A\\u7A7A\",\n max: \"${name}\\u5B57\\u7B26\\u957F\\u5EA6\\u4E0D\\u80FD\\u8D85\\u8FC7 ${validate} \\u4E2A\\u5B57\\u7B26\\uFF0C\\u4E00\\u4E2A\\u4E2D\\u6587\\u7B49\\u4E8E\\u4E24\\u4E2A\\u5B57\\u7B26\",\n min: \"${name}\\u5B57\\u7B26\\u957F\\u5EA6\\u4E0D\\u80FD\\u5C11\\u4E8E ${validate} \\u4E2A\\u5B57\\u7B26\\uFF0C\\u4E00\\u4E2A\\u4E2D\\u6587\\u7B49\\u4E8E\\u4E24\\u4E2A\\u5B57\\u7B26\",\n len: \"${name}\\u5B57\\u7B26\\u957F\\u5EA6\\u5FC5\\u987B\\u662F ${validate}\",\n \"enum\": \"${name}\\u53EA\\u80FD\\u662F${validate}\\u7B49\",\n idcard: \"\\u8BF7\\u8F93\\u5165\\u6B63\\u786E\\u7684${name}\",\n telnumber: \"\\u8BF7\\u8F93\\u5165\\u6B63\\u786E\\u7684${name}\",\n pattern: \"\\u8BF7\\u8F93\\u5165\\u6B63\\u786E\\u7684${name}\",\n validator: \"${name}\\u4E0D\\u7B26\\u5408\\u8981\\u6C42\",\n \"boolean\": \"${name}\\u6570\\u636E\\u7C7B\\u578B\\u5FC5\\u987B\\u662F\\u5E03\\u5C14\\u7C7B\\u578B\",\n number: \"${name}\\u5FC5\\u987B\\u662F\\u6570\\u5B57\"\n },\n colonText: \"\\uFF1A\"\n },\n input: {\n placeholder: \"\\u8BF7\\u8F93\\u5165\"\n },\n list: {\n loadingText: \"\\u6B63\\u5728\\u52A0\\u8F7D\\u4E2D\\uFF0C\\u8BF7\\u7A0D\\u7B49\",\n loadingMoreText: \"\\u70B9\\u51FB\\u52A0\\u8F7D\\u66F4\\u591A\"\n },\n alert: {\n expandText: \"\\u5C55\\u5F00\\u66F4\\u591A\",\n collapseText: \"\\u6536\\u8D77\"\n },\n anchor: {\n copySuccessText: \"\\u94FE\\u63A5\\u590D\\u5236\\u6210\\u529F\",\n copyText: \"\\u590D\\u5236\\u94FE\\u63A5\"\n },\n colorPicker: {\n swatchColorTitle: \"\\u7CFB\\u7EDF\\u9884\\u8BBE\\u989C\\u8272\",\n recentColorTitle: \"\\u6700\\u8FD1\\u4F7F\\u7528\\u989C\\u8272\",\n clearConfirmText: \"\\u786E\\u5B9A\\u6E05\\u7A7A\\u6700\\u8FD1\\u4F7F\\u7528\\u7684\\u989C\\u8272\\u5417\\uFF1F\",\n singleColor: \"\\u5355\\u8272\",\n gradientColor: \"\\u6E10\\u53D8\"\n },\n guide: {\n finishButtonProps: {\n content: \"\\u5B8C\\u6210\",\n theme: \"primary\"\n },\n nextButtonProps: {\n content: \"\\u4E0B\\u4E00\\u6B65\",\n theme: \"primary\"\n },\n skipButtonProps: {\n content: \"\\u8DF3\\u8FC7\",\n theme: \"default\"\n },\n prevButtonProps: {\n content: \"\\u4E0A\\u4E00\\u6B65\",\n theme: \"default\"\n }\n },\n image: {\n errorText: \"\\u56FE\\u7247\\u65E0\\u6CD5\\u663E\\u793A\",\n loadingText: \"\\u56FE\\u7247\\u52A0\\u8F7D\\u4E2D\"\n },\n imageViewer: {\n errorText: \"\\u56FE\\u7247\\u52A0\\u8F7D\\u5931\\u8D25\\uFF0C\\u53EF\\u5C1D\\u8BD5\\u91CD\\u65B0\\u52A0\\u8F7D\",\n mirrorTipText: \"\\u955C\\u50CF\",\n rotateTipText: \"\\u65CB\\u8F6C\",\n originalSizeTipText: \"\\u539F\\u59CB\\u5927\\u5C0F\"\n },\n typography: {\n expandText: \"\\u5C55\\u5F00\",\n collapseText: \"\\u6536\\u8D77\",\n copiedText: \"\\u590D\\u5236\\u6210\\u529F\"\n },\n rate: {\n rateText: [\"\\u6781\\u5DEE\", \"\\u5931\\u671B\", \"\\u4E00\\u822C\", \"\\u6EE1\\u610F\", \"\\u60CA\\u559C\"]\n },\n empty: {\n titleText: {\n maintenance: \"\\u5EFA\\u8BBE\\u4E2D\",\n success: \"\\u6210\\u529F\",\n fail: \"\\u5931\\u8D25\",\n empty: \"\\u6682\\u65E0\\u6570\\u636E\",\n networkError: \"\\u7F51\\u7EDC\\u9519\\u8BEF\"\n }\n },\n descriptions: {\n colonText: \"\\uFF1A\"\n },\n chat: {\n placeholder: \"\\u8BF7\\u8F93\\u5165\\u6D88\\u606F...\",\n stopBtnText: \"\\u4E2D\\u6B62\",\n refreshTipText: \"\\u91CD\\u65B0\\u751F\\u6210\",\n copyTipText: \"\\u590D\\u5236\",\n likeTipText: \"\\u70B9\\u8D5E\",\n dislikeTipText: \"\\u70B9\\u8E29\",\n copyCodeBtnText: \"\\u590D\\u5236\\u4EE3\\u7801\",\n copyCodeSuccessText: \"\\u5DF2\\u590D\\u5236\",\n clearHistoryBtnText: \"\\u6E05\\u7A7A\\u5386\\u53F2\\u8BB0\\u5F55\",\n copyTextSuccess: \"\\u5DF2\\u6210\\u529F\\u590D\\u5236\\u5230\\u526A\\u8D34\\u677F\",\n copyTextFail: \"\\u590D\\u5236\\u5230\\u526A\\u8D34\\u677F\\u5931\\u8D25\",\n confirmClearHistory: \"\\u786E\\u5B9A\\u8981\\u6E05\\u7A7A\\u6240\\u6709\\u7684\\u6D88\\u606F\\u5417\\uFF1F\",\n loadingText: \"\\u601D\\u8003\\u4E2D...\",\n loadingEndText: \"\\u5DF2\\u6DF1\\u5EA6\\u601D\\u8003\",\n uploadImageText: \"\\u4E0A\\u4F20\\u56FE\\u7247\",\n uploadAttachmentText: \"\\u4E0A\\u4F20\\u9644\\u4EF6\"\n },\n qrcode: {\n expiredText: \"\\u4E8C\\u7EF4\\u7801\\u8FC7\\u671F\",\n refreshText: \"\\u70B9\\u51FB\\u5237\\u65B0\",\n scannedText: \"\\u5DF2\\u626B\\u63CF\"\n }\n};\n\nexport { zhCn as z };\n//# sourceMappingURL=dep-4d4f98d8.mjs.map\n","import zhCN from 'tdesign-vue-next/es/locale/zh_CN'\n\nexport default {\n ...zhCN,\n loading: {\n text: '加载中'\n },\n crud: {\n emptyText: '暂无数据',\n searchText: '搜索',\n resetText: '重置',\n addText: '新增',\n viewText: '查看',\n editText: '编辑',\n deleteText: '删除',\n operationText: '操作',\n closeText: '关闭',\n\n deleteSuccessText: '删除成功',\n deleteHasChildrenText: '请先清空所选数据项的子级',\n operationSuccessText: '操作成功',\n deleteWrapperBodyText: '是否确认删除所选数据项?',\n\n collapseSearchText: '收起搜索',\n expandSearchText: '展开搜索',\n refreshText: '刷新',\n collapseTreeText: '收起全部',\n expandTreeText: '展开全部',\n columnControllerText: '列配置'\n },\n modal: {\n systemPromptText: '系统提示'\n },\n upload: {\n ...zhCN.upload,\n fileFormatNotSupportedMessage: ['文件格式不支持,请上传', '格式文件'],\n maxUploadMessage: ['文件数量超出限制(',')个,仅上传未超出数量的文件'],\n sameNameMessage: '不允许上传同名文件',\n fileSizeExceedsLimit: '文件大小超出限制,已自动过滤',\n fileUploadFailed: '文件上传失败',\n viewFileText: '查看文件'\n }\n}\n","import type { QdConfigProviderProps } from './types'\nimport { computed, getCurrentInstance, inject } from 'vue'\nimport { PROVIDE_GLOBAL_CONFIG } from './config'\nimport zhCN from '../../locales/zh-CN'\nimport { get } from 'lodash-es'\n\nexport function useConfig<T extends keyof NonNullable<QdConfigProviderProps['globalConfig']>>(\n key: T,\n componentLocale?: NonNullable<QdConfigProviderProps['globalConfig']>[T]\n) {\n const injectGlobalConfig = getCurrentInstance?.()\n ? inject(PROVIDE_GLOBAL_CONFIG, null)\n : undefined\n\n const mergedGlobalConfig = computed(() => injectGlobalConfig?.value || zhCN)\n\n const globalConfig = computed<NonNullable<NonNullable<QdConfigProviderProps['globalConfig']>[T]>>(\n () =>\n Object.assign(\n {},\n mergedGlobalConfig.value[key as keyof typeof mergedGlobalConfig.value],\n componentLocale\n )\n )\n\n const t = <T extends keyof typeof globalConfig.value = keyof typeof globalConfig.value>(\n path: T\n ) => {\n return get(globalConfig.value, path) as NonNullable<typeof globalConfig.value[T]>\n }\n\n return {\n t,\n global: globalConfig\n }\n}\n","<template>\n <t-enhanced-table\n ref=\"table\"\n class=\"qd-service-table\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"activeRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-row-keys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n v-bind=\"reProps.tableOptions\"\n :loading=\"tableLoad\"\n :data=\"data\"\n :pagination=\"rePagination\"\n >\n <template #empty>\n <t-empty class=\"qd-service-table__empty\" :title=\"t('emptyText')\" />\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-enhanced-table>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import type { ComponentPublicInstance } from 'vue'\n import type {\n TableRowData,\n TdEnhancedTableProps,\n EnhancedTableInstanceFunctions\n } from 'tdesign-vue-next'\n import type { ServicePageParams, ServicePageRes, ServicePagination } from 'qidian-shared'\n import type { QdServiceTableInstanceFunctions, QdServiceTableProps } from './types'\n import { computed, onMounted, useTemplateRef, ref, onActivated, watch } from 'vue'\n import { EnhancedTable as TEnhancedTable, Empty as TEmpty } from 'tdesign-vue-next'\n import { easyCopy, isEmpty, suspectedWrapperPromise, useServicePagination } from 'qidian-shared'\n import { qdServiceTableProps, qdServiceTableTreeConfig } from './props'\n import { useVModels } from '@vueuse/core'\n import { AddRectangleIcon, LoadingIcon, MinusRectangleIcon } from 'tdesign-icons-vue-next'\n import { useConfig } from '../config-provider/useConfig'\n\n defineOptions({\n name: 'QdServiceTable'\n })\n\n type Props = QdServiceTableProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceTableProps)\n const emit = defineEmits<{\n 'update:data': [Props['data']]\n 'update:selectedRowKeys': [Props['selectedRowKeys']]\n 'update:activeRowKeys': [Props['activeRowKeys']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, { passive: true })\n\n const { t } = useConfig('crud')\n const tableRef = useTemplateRef<EnhancedTableInstanceFunctions & ComponentPublicInstance>('table')\n const treeLoadIds = ref<(string | number)[]>([])\n const scrollRecord = { top: 0, left: 0 }\n\n const reProps = computed(() => {\n const {\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n cacheKey,\n cacheTime,\n pollingInterval,\n onBefore,\n onAfter,\n onSuccess,\n onError,\n\n loading,\n selectType,\n data,\n selectedRowKeys,\n activeRowKeys,\n columns,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n\n selectOnRowClick,\n expandOnRowClick,\n tree,\n onScroll,\n ...tableOptions\n } = props\n\n // 处理懒加载配置\n const reTableOptions = tableOptions as TdEnhancedTableProps<D>\n let reTransformRes = transformRes\n\n const reTree = tree ? { ...tree, ...easyCopy(qdServiceTableTreeConfig) } : tree\n\n if (reTree?.lazyLoad) {\n reTransformRes = async (res) => {\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(res))\n if (trErr) throw trErr\n\n temp = trRes\n } else {\n temp = res as ServicePageRes<D>\n }\n\n temp.records.forEach((item) => {\n if (item.children) return\n\n item.children = true as unknown as D[]\n })\n\n return temp\n }\n\n // 如果用户没有配置 treeExpandAndFoldIcon,生成默认的\n if (!tableOptions.treeExpandAndFoldIcon) {\n reTableOptions.treeExpandAndFoldIcon = (h, { row, type }) => {\n const children = row.children as unknown\n\n if (treeLoadIds.value.includes(row.id) && children === true) {\n return <LoadingIcon style={{ color: 'var(--td-brand-color)' }} />\n }\n\n if (children === true && row.__qdTreeLoaded) {\n return <AddRectangleIcon style={{ color: 'transparent', cursor: 'default' }} />\n }\n\n return type === 'expand' ? <AddRectangleIcon /> : <MinusRectangleIcon />\n }\n }\n\n // 如果用户没有配置 onExpandedTreeNodesChange,生成默认的\n if (!tableOptions.onExpandedTreeNodesChange) {\n reTableOptions.onExpandedTreeNodesChange = async (currentExpandedTreeNodes, options) => {\n const { row, rowState } = options\n if (!row || !rowState) return\n\n const { level } = rowState\n const { __qdTreeLoaded } = row\n const { maxLevel } = reTree\n const id = row[props.rowKey || qdServiceTableProps.rowKey]\n\n // 如果已加载或达到最大层级,不再加载\n if (\n treeLoadIds.value.includes(id) ||\n __qdTreeLoaded ||\n isEmpty(level) ||\n (!isEmpty(maxLevel) && level! >= maxLevel!)\n ) {\n return\n }\n\n // 设置加载状态\n treeLoadIds.value.push(id)\n tableRef.value?.setData(id, { ...row, __qdTreeLoaded: true })\n\n const { transformParams, transformRes } = reTree\n\n const currentParams = options\n let tParams: TP | undefined\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n tParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(\n service(tParams || (currentParams as TP))\n )\n if (serviceErr) {\n removeTreeLoadId(id)\n throw serviceErr\n }\n\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes, options))\n if (trErr) {\n removeTreeLoadId(id)\n throw trErr\n }\n\n temp = trRes\n } else {\n temp = serviceRes as ServicePageRes<D>\n }\n\n removeTreeLoadId(id)\n if (!temp.records) temp.records = []\n if (isEmpty(temp.total)) temp.total = temp.records.length\n\n if (!temp.records.length) return\n\n const childrenKey = reTree.childrenKey || qdServiceTableTreeConfig.childrenKey\n tableRef.value?.setData(id, {\n ...row,\n __qdTreeLoaded: true,\n [childrenKey]: []\n })\n tableRef.value?.appendTo(\n id,\n temp.records.map((item) => {\n if (item.children) return item\n\n return {\n ...item,\n [childrenKey]: isEmpty(maxLevel) ? true : level! + 1 < maxLevel!\n }\n })\n )\n }\n }\n }\n\n const reColumns = columns || []\n if (selectType) {\n const selectIdx = reColumns.findIndex(\n (item) => item.type === 'single' || item.type === 'multiple'\n )\n const defaultSelect: (typeof reColumns)[number] = {\n colKey: 'row-select',\n type: selectType,\n align: 'center',\n width: 50\n }\n\n if (selectIdx > -1) {\n reColumns[selectIdx] = {\n ...defaultSelect,\n ...reColumns[selectIdx]\n }\n } else {\n reColumns.unshift(defaultSelect)\n }\n }\n\n const reSelectOnRowClick =\n selectOnRowClick ?? (!expandOnRowClick && !reTree?.expandTreeNodeOnClick)\n\n const reOnScroll: typeof onScroll = (params) => {\n onScroll?.(params)\n\n const target = params.e.target as HTMLElement\n if (!target) return\n\n const { scrollTop, scrollLeft } = target\n scrollRecord.top = scrollTop\n scrollRecord.left = scrollLeft\n }\n\n return {\n tableOptions: {\n ...reTableOptions,\n\n columns: reColumns,\n selectOnRowClick: reSelectOnRowClick,\n expandOnRowClick,\n tree: reTree,\n onScroll: reOnScroll\n } as unknown as TdEnhancedTableProps<TableRowData>,\n externalLoad: loading,\n serviceOptions: {\n service,\n manual,\n transformParams,\n transformRes: reTransformRes,\n pagination,\n cacheKey,\n cacheTime,\n pollingInterval,\n onBefore,\n onAfter,\n onSuccess,\n onError\n },\n models: {\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const {\n firstLoad,\n manualTriggerLoad,\n loading,\n current,\n pageSize,\n total,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync\n } = useServicePagination({\n ...reProps.value.serviceOptions,\n onSuccess: (res) => {\n data.value = res.list\n reProps.value.serviceOptions.onSuccess?.(res)\n }\n })\n\n const tableLoad = computed<TdEnhancedTableProps['loading']>(() => {\n return (\n reProps.value.externalLoad ||\n manualTriggerLoad.value ||\n (!data.value?.length && firstLoad.value)\n )\n })\n\n const rePagination = computed(() => {\n return props.pagination === false\n ? undefined\n : {\n current: current.value,\n pageSize: pageSize.value,\n total: total.value,\n onCurrentChange: changeCurrent,\n onPageSizeChange: changePageSize\n }\n })\n\n function removeTreeLoadId(id: (typeof treeLoadIds.value)[number]) {\n const index = treeLoadIds.value.findIndex((item) => item === id)\n if (index === -1) return\n\n treeLoadIds.value.splice(index, 1)\n }\n\n function resumeScrollRecord() {\n const el = tableRef.value?.$el\n if (!el) return\n\n // NOTE 暂时不考虑虚拟列表\n const scrollEl = el.querySelector('.t-table__content')\n if (!scrollEl) return\n\n const { scrollTop, scrollLeft } = scrollEl\n const { top, left } = scrollRecord\n if (top === scrollTop && left === scrollLeft) return\n\n scrollEl.scrollTo({ top, left })\n }\n\n const expose = {\n tableLoad,\n firstLoad,\n manualTriggerLoad,\n loading,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync\n } as unknown as QdServiceTableInstanceFunctions<D, R, P, TP, Pag>\n\n watch(columnControllerVisible, (visible) => {\n const { columns } = reProps.value.tableOptions\n if (visible && !displayColumns.value && columns) {\n displayColumns.value = columns.map((col) => col.colKey).filter(Boolean)\n }\n }, { immediate: true })\n\n onMounted(() => {\n Object.assign(expose, tableRef.value)\n })\n\n onActivated(() => {\n resumeScrollRecord()\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-service-table {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > :deep(.t-table__content) {\n flex: 1;\n\n tbody > tr:last-child:not(.t-table__empty-row) > td,\n tfoot > tr:last-child > td {\n &::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n height: 1px;\n transform: translateY(100%);\n background-color: var(--td-component-border);\n }\n }\n }\n\n &__empty {\n padding: var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl);\n }\n }\n</style>\n","<template>\n <t-list\n ref=\"list\"\n class=\"qd-service-list\"\n v-loading=\"listLoad\"\n :async-loading=\"listAsyncLoad\"\n v-bind=\"reProps.listOptions\"\n @scroll=\"onScroll\"\n >\n <slot v-if=\"!listLoad.loading && !listAsyncLoad && empty\" name=\"empty\">\n <t-empty class=\"qd-service-list__empty\" :title=\"t('emptyText')\" />\n </slot>\n\n <slot :data=\"data\" />\n\n <template v-for=\"name in filterSlots($slots, ['default', 'empty'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-list>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import type { ComponentPublicInstance } from 'vue'\n import type { ListInstanceFunctions, TableRowData } from 'tdesign-vue-next'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdServiceListInstanceFunctions, QdServiceListProps } from './types'\n import {\n computed,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n useTemplateRef\n } from 'vue'\n import { List as TList, Empty as TEmpty } from 'tdesign-vue-next'\n import { qdServiceListProps } from './props'\n import { filterSlots, useServiceLoadMore } from 'qidian-shared'\n import { useVModels } from '@vueuse/core'\n import { useConfig } from '../config-provider/useConfig'\n\n defineOptions({\n name: 'QdServiceList'\n })\n\n type Props = QdServiceListProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceListProps)\n const emit = defineEmits<{\n 'update:data': [Props['data']]\n }>()\n const { data } = useVModels<\n {\n data: NonNullable<Props['data']>\n },\n keyof typeof emit\n >(props, emit, { passive: true })\n\n const { t } = useConfig('crud')\n const listRef = useTemplateRef<ListInstanceFunctions & ComponentPublicInstance>('list')\n let scrollTopRecord = 0\n\n const reProps = computed(() => {\n const {\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError,\n\n data,\n\n loading: externalLoad,\n asyncLoading: externalAsyncLoad,\n scroll,\n ...listOptions\n } = props\n\n return {\n scrollTarget: scroll?.target,\n externalLoad,\n externalAsyncLoad,\n listOptions: {\n ...listOptions,\n scroll\n },\n serviceOptions: {\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n },\n models: {\n data\n }\n }\n })\n\n const {\n data: serviceData,\n firstLoad,\n manualTriggerLoad,\n loading,\n loadingMore,\n noMore,\n error,\n refresh,\n refreshAsync,\n cancel,\n loadMore,\n loadMoreAsync,\n mutate\n } = useServiceLoadMore({\n ...reProps.value.serviceOptions,\n onSuccess: (res) => {\n reProps.value.serviceOptions.onSuccess?.(res)\n\n data.value = (serviceData.value?.list || []) as D[]\n }\n })\n\n const empty = computed(() => noMore.value && !data.value.length)\n const listLoad = computed(() => {\n return {\n loading: reProps.value.externalLoad || firstLoad.value,\n size: 'small',\n ...props.loadingProps\n }\n })\n const listAsyncLoad = computed(() => {\n const { externalLoad, externalAsyncLoad } = reProps.value\n if (externalLoad || firstLoad.value) return ''\n if (externalAsyncLoad) return externalAsyncLoad\n if (loading.value) return 'loading'\n return ''\n })\n\n function onScroll({\n scrollTop,\n scrollBottom\n }: {\n e: Event | WheelEvent\n scrollTop: number\n scrollBottom: number\n }) {\n scrollTopRecord = scrollTop\n\n if (\n loading.value ||\n noMore.value ||\n scrollBottom > (reProps.value.listOptions.scroll?.rowHeight ?? 100)\n ) {\n return\n }\n\n loadMore()\n }\n\n function getScrollTargetEl() {\n const { scrollTarget } = reProps.value\n if (!scrollTarget) return null\n\n if (typeof scrollTarget !== 'string') return scrollTarget\n return document.querySelector(scrollTarget)\n }\n\n function onTargetScroll(evt: Event) {\n const { scrollHeight, clientHeight, scrollTop } = evt.target as HTMLElement\n const scrollBottom = scrollHeight - clientHeight - scrollTop\n onScroll({ scrollTop, scrollBottom, e: evt })\n }\n\n function addListerTarget() {\n const el = getScrollTargetEl()\n if (!el) return\n\n removeListerTarget()\n el.addEventListener('scroll', onTargetScroll)\n }\n\n function removeListerTarget() {\n const el = getScrollTargetEl()\n if (!el) return\n\n el.removeEventListener('scroll', onTargetScroll)\n }\n\n function resumeScrollTopRecord() {\n let el = getScrollTargetEl()\n if (!el) el = listRef.value?.$el\n if (!el) return\n\n const { scrollTop } = el\n const currentScrollTopRecord = scrollTopRecord\n if (currentScrollTopRecord === scrollTop) return\n\n const core = () => {\n el.scrollTo({ top: currentScrollTopRecord })\n setTimeout(() => {\n if (!el) return\n const { scrollTop, scrollHeight } = el\n if (scrollHeight < currentScrollTopRecord) return\n if (scrollTop >= currentScrollTopRecord) return\n core()\n })\n }\n\n core()\n }\n\n const expose = {\n data: serviceData,\n firstLoad,\n manualTriggerLoad,\n loading,\n loadingMore,\n noMore,\n error,\n refresh,\n refreshAsync,\n cancel,\n loadMore,\n loadMoreAsync,\n mutate\n } as QdServiceListInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n addListerTarget()\n Object.assign(expose, listRef.value)\n })\n\n onActivated(() => {\n resumeScrollTopRecord()\n addListerTarget()\n })\n\n onDeactivated(() => {\n removeListerTarget()\n })\n\n onBeforeUnmount(() => {\n removeListerTarget()\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-service-list {\n height: 100%;\n display: flex;\n flex-direction: column;\n background-color: transparent;\n\n & > :deep(.t-list__load) {\n color: var(--td-text-color-secondary);\n background-color: transparent;\n }\n\n &__empty {\n padding: var(--td-comp-paddingLR-xxl) var(--td-comp-paddingTB-xxl);\n }\n }\n</style>\n","export const qdDictConvStrSeparator = ','\n\nexport const qdDictSelectProps = {\n showArrow: true,\n filterable: true,\n popupVisible: undefined,\n disabled: undefined,\n clearable: false,\n readonly: undefined,\n valueType: 'value',\n defaultSelectFirst: false,\n convStr: false\n} as const\n\nexport const qdDictRadioGroupProps = {\n allowUncheck: false,\n disabled: undefined,\n readonly: undefined,\n theme: 'radio',\n variant: 'outline'\n} as const\n\nexport const qdDictCheckboxGroupProps = {\n max: undefined,\n disabled: undefined,\n readonly: undefined,\n modelValue: () => [],\n value: () => [],\n defaultValue: () => [],\n convStr: false\n} as const\n\nexport const qdDictTagProps = {\n options: undefined,\n strict: false\n} as const\n","<template>\n <t-select\n class=\"qd-service-select\"\n v-model=\"reModelValue\"\n v-model:input=\"inputValue\"\n v-model:popup-visible=\"popupVisible\"\n :options=\"options\"\n :autofocus=\"autofocus\"\n :loading=\"selectLoad\"\n v-bind=\"reProps.selectOptions\"\n >\n <template #panel-bottom-content>\n <t-loading\n v-if=\"loading && !firstLoad\"\n class=\"qd-service-select__load\"\n size=\"small\"\n :text=\"t('text')\"\n />\n\n <slot v-else-if=\"$slots['panel-bottom-content']\" name=\"panel-bottom-content\" />\n </template>\n\n <template\n v-for=\"(_, name) in extractSlotsWithoutPrefix($slots, 'panel-bottom')\"\n #[name]=\"slotProps\"\n >\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-select>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n D extends SelectOption = SelectOption,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination,\n SK extends string | string[] = string | string[]\n \"\n>\n import type { SelectOption, TdSelectProps } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdServiceSelectInstanceFunctions, QdServiceSelectProps } from './types'\n import type { WatchHandle } from 'vue'\n import { computed, onActivated, onDeactivated, onMounted, ref, watch } from 'vue'\n import { Select as TSelect, Loading as TLoading } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { useServiceLoadMore, toArr, extractSlotsWithoutPrefix, isEmpty } from 'qidian-shared'\n import { qdServiceSelectKeys, qdServiceSelectProps } from './props'\n import { useConfig } from '../config-provider/useConfig'\n import { qdDictConvStrSeparator } from '../dict/props'\n\n defineOptions({\n name: 'QdServiceSelect'\n })\n\n type Props = QdServiceSelectProps<D, R, P, TP, Pag, SK>\n\n const props = withDefaults(defineProps<Props>(), qdServiceSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:inputValue': [Props['inputValue']]\n 'update:popupVisible': [Props['popupVisible']]\n 'update:options': [Props['options']]\n }>()\n const { modelValue, inputValue, popupVisible, options } = useVModels(props, emit, {\n passive: true\n })\n\n const reModelValue = computed({\n get: () => {\n const { convStr, selectOptions } = reProps.value\n const { multiple, valueType } = selectOptions\n if (!multiple || valueType === 'object') return modelValue.value\n\n if (isEmpty(modelValue.value)) return []\n if (typeof modelValue.value === 'string') {\n return modelValue.value.split(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n }\n return modelValue.value\n },\n set: (val) => {\n const { convStr, selectOptions } = reProps.value\n const { multiple, valueType } = selectOptions\n if (!multiple || valueType === 'object') {\n modelValue.value = val\n return\n }\n\n if (convStr && Array.isArray(val)) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n } else {\n modelValue.value = val\n }\n }\n })\n\n const { t } = useConfig('loading')\n\n const search = ref('')\n const autofocus = ref(false)\n\n const reProps = computed(() => {\n const {\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError,\n\n convStr,\n searchKey,\n loading: externalLoad,\n defaultSelectFirst,\n fillOptions,\n\n modelValue,\n inputValue,\n popupVisible: inPopupVisible,\n options: inOptions,\n\n popupProps,\n filterable,\n filter,\n autofocus,\n onSearch,\n onPopupVisibleChange,\n onFocus,\n ...selectOptions\n } = props\n\n const rePopupProps = popupProps || {}\n rePopupProps.onScrollToBottom = (context: { e: WheelEvent }) => {\n popupProps?.onScrollToBottom?.(context)\n if (loading.value || noMore.value) return\n loadMore()\n }\n\n const reOnSearch: typeof onSearch = (\n filterWords: string,\n context: {\n e: KeyboardEvent\n }\n ) => {\n onSearch?.(filterWords, context)\n search.value = filterWords.trim()\n refresh()\n }\n\n const reOnPopupVisibleChange: typeof onPopupVisibleChange = (visible, context) => {\n onPopupVisibleChange?.(visible, context)\n\n if (loading.value) return\n if (visible && !options.value?.length) {\n search.value = ''\n refresh()\n }\n }\n\n const reOnFocus: typeof onFocus = (context) => {\n onFocus?.(context)\n\n if (autofocus && !popupVisible.value) {\n popupVisible.value = true\n }\n }\n\n const reSearchKey = toArr(searchKey)\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const searchData: Record<string, string> = {}\n reSearchKey.forEach((key) => {\n searchData[key] = search.value\n })\n\n const merged = !params && !reSearchKey.length ? params : { ...params, ...searchData }\n if (transformParams)\n return transformParams(merged as unknown as Parameters<typeof transformParams>[0])\n return merged as TP\n }\n\n const reFilterable = filterable ?? !!reSearchKey.length\n const reFilter = reFilterable ? handleFilter : filter\n\n return {\n autofocus,\n externalLoad,\n defaultSelectFirst,\n fillOptions,\n convStr,\n selectOptions: {\n ...selectOptions,\n filterable: reFilterable,\n filter: reFilter,\n popupProps: rePopupProps,\n onSearch: reOnSearch,\n onPopupVisibleChange: reOnPopupVisibleChange,\n onfocus: reOnFocus\n } as unknown as TdSelectProps<SelectOption>,\n serviceOptions: {\n service,\n manual,\n transformParams: mergedTransformParams,\n transformRes,\n pagination,\n onBefore,\n onAfter,\n onSuccess,\n onError\n },\n models: {\n modelValue,\n inputValue,\n popupVisible: inPopupVisible,\n options: inOptions\n }\n }\n })\n\n let hasAutoSelected = false // 记录是否已经自动选择过\n let fillOptionsWatchStop: WatchHandle | undefined // 处理 fillOptions 合并逻辑\n let triggerServiceMerged = false // 记录是否已经触发过请求后合并\n\n const {\n data,\n firstLoad,\n manualTriggerLoad,\n loading,\n loadingMore,\n noMore,\n error,\n refresh,\n refreshAsync,\n cancel,\n loadMore,\n loadMoreAsync,\n mutate\n } = useServiceLoadMore({\n ...reProps.value.serviceOptions,\n onBefore: () => {\n // 请求开始时销毁 fillOptions 的 watch\n fillOptionsWatchStop?.()\n reProps.value.serviceOptions.onBefore?.()\n },\n onSuccess: (res) => {\n reProps.value.serviceOptions.onSuccess?.(res)\n\n const list = (data.value?.list || []) as D[]\n if (!triggerServiceMerged && reProps.value.fillOptions?.length) {\n const map = new Map<typeof reModelValue.value, D>()\n ;[...reProps.value.fillOptions, ...list].forEach((item) => {\n const k =\n item[\n (reProps.value.selectOptions.keys?.value ||\n qdServiceSelectKeys.value) as keyof typeof item\n ]\n map.set(k, item as D)\n })\n options.value = Array.from(map.values())\n } else {\n options.value = list\n }\n triggerServiceMerged = true\n\n // 当 defaultSelectFirst 为 true 且 modelValue 为空且未自动选择过时,默认选中第一个\n if (\n !hasAutoSelected &&\n reProps.value.defaultSelectFirst &&\n isEmpty(reModelValue.value) &&\n res.list.length\n ) {\n const firstOption = res.list[0]\n reModelValue.value =\n firstOption[\n (reProps.value.selectOptions.keys?.value ||\n qdServiceSelectKeys.value) as keyof typeof firstOption\n ]\n hasAutoSelected = true\n }\n }\n })\n\n const selectLoad = computed(() => reProps.value.externalLoad || firstLoad.value)\n\n function handleFilter(filterWords: string, option: SelectOption) {\n if (!filterWords) return true\n\n if ('value' in option) {\n if (reProps.value.selectOptions.multiple) {\n if (reModelValue.value.includes(option.value)) return true\n } else if (reModelValue.value === option.value) {\n return true\n }\n }\n\n if (!option.label) return false\n\n const value = filterWords.trim().toLowerCase()\n return option.label.toLowerCase().includes(value)\n }\n\n const expose = {\n firstLoad,\n manualTriggerLoad,\n loading,\n loadingMore,\n noMore,\n error,\n refresh,\n refreshAsync,\n cancel,\n loadMore,\n loadMoreAsync,\n mutate\n } as QdServiceSelectInstanceFunctions<D, R, P, TP, Pag>\n\n // manual 为 true 时,watch fillOptions 对 options.value 进行赋值\n if (reProps.value.serviceOptions.manual) {\n fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (fillOpts?.length) options.value = fillOpts\n },\n { immediate: true, deep: true }\n )\n }\n\n onMounted(() => {\n autofocus.value = reProps.value.autofocus\n })\n\n onActivated(() => {\n autofocus.value = reProps.value.autofocus\n })\n\n onDeactivated(() => {\n autofocus.value = false\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-service-select {\n &__load {\n width: 100%;\n border-top: 1px solid var(--td-component-stroke);\n padding: 6px;\n color: var(--td-text-color-disabled);\n }\n }\n</style>\n","import { qdFormProps } from '../form/props'\n\nexport const qdDialogProps = {\n width: 'min(960px, 100%)',\n theme: 'default',\n attach: 'body',\n header: true,\n footer: true,\n closeBtn: true,\n closeOnEscKeydown: true,\n closeOnOverlayClick: false,\n confirmOnEnter: undefined,\n destroyOnClose: true,\n lazy: true,\n placement: 'center',\n preventScrollThrough: true,\n showOverlay: true\n} as const\n\nexport const qdDialogFormProps = {\n ...qdFormProps,\n\n wrapper: () => qdDialogProps\n} as const\n","<template>\n <t-dialog v-model:visible=\"visible\" class=\"qd-dialog\" v-bind=\"reProps.dialogOptions\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-dialog>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdDialogInstanceFunctions, QdDialogProps } from './types'\n import { qdDialogProps } from './props'\n import { Dialog as TDialog } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { computed, ref } from 'vue'\n import { suspectedWrapperPromise } from 'qidian-shared'\n\n defineOptions({\n name: 'QdDialog'\n })\n\n const props = withDefaults(defineProps<QdDialogProps>(), qdDialogProps)\n const emit = defineEmits<{\n 'update:visible': [QdDialogProps['visible']]\n }>()\n const { visible } = useVModels(props, emit, { passive: true })\n\n const confirmLoad = ref(false)\n\n const reProps = computed(() => {\n const { visible: inVisible, confirmLoading, ...dialogOptions } = props\n const reConfirmLoading = confirmLoad.value || confirmLoading\n\n return {\n dialogOptions: {\n ...dialogOptions,\n\n confirmLoading: reConfirmLoading,\n closeOnEscKeydown: reConfirmLoading ? false : dialogOptions.closeOnEscKeydown,\n closeOnOverlayClick: reConfirmLoading ? false : dialogOptions.closeOnOverlayClick,\n closeBtn: reConfirmLoading ? false : dialogOptions.closeBtn,\n\n cancelBtn: reConfirmLoading\n ? typeof dialogOptions.cancelBtn === 'object'\n ? { ...dialogOptions.cancelBtn, disabled: true }\n : { disabled: true }\n : dialogOptions.cancelBtn,\n\n onConfirm: async () => {\n const onConfirm = dialogOptions.onConfirm\n if (!onConfirm) return\n\n confirmLoad.value = true\n suspectedWrapperPromise(\n onConfirm((closed) => {\n visible.value = closed\n })\n )\n confirmLoad.value = false\n }\n },\n models: { visible: inVisible }\n }\n })\n\n function show() {\n visible.value = true\n }\n\n function hide() {\n visible.value = false\n }\n\n const expose: QdDialogInstanceFunctions = { show, hide }\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\">\n .qd-dialog {\n .t-dialog__wrap > .t-dialog__position > .t-dialog > .t-dialog__body {\n overflow: visible;\n }\n }\n</style>\n","import type { InjectionKey, Ref } from 'vue'\nimport type { QdGridItemProps } from './types'\n\nexport const PROVIDE_GRID_WIDTH_KEY: InjectionKey<Ref<number>> = Symbol('QdGridWidth')\nexport const PROVIDE_GRID_ITEM_PROPS_KEY: InjectionKey<QdGridItemProps> = Symbol('QdGridItemProps')\nexport const DEFAULT_GRID_WIDTH = 1920\n\nexport const DEFAULT_BREAKPOINTS = {\n xs: 768, // <768px 手机\n sm: 768, // ≥768px 平板\n md: 992, // ≥992px 超小尺寸电脑\n lg: 1200, // ≥1200px 小尺寸电脑\n xl: 1400, // ≥1400px 中尺寸电脑\n xxl: 1880 // ≥1880px 大尺寸电脑\n}\n\nexport const DEFAULT_COL = 1\nexport const DEFAULT_ROW = 1\n","<template>\n <div ref=\"grid\" v-resize=\"onResize\" class=\"qd-grid\" :style=\"gutterStyle\">\n <slot :gutter-style=\"gutterStyle\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { GridGutterValue, QdGridProps } from './types'\n import { computed, provide, ref, useTemplateRef } from 'vue'\n import { isEmpty, resizeDirective } from 'qidian-shared'\n import {\n DEFAULT_BREAKPOINTS,\n DEFAULT_GRID_WIDTH,\n PROVIDE_GRID_ITEM_PROPS_KEY,\n PROVIDE_GRID_WIDTH_KEY\n } from './config'\n\n defineOptions({\n name: 'QdGrid'\n })\n\n const vResize = resizeDirective\n\n const props = defineProps<QdGridProps>()\n\n provide(PROVIDE_GRID_ITEM_PROPS_KEY, props.grid || {})\n const gridRef = useTemplateRef<HTMLElement>('grid')\n const gridWidth = ref(DEFAULT_GRID_WIDTH)\n provide(PROVIDE_GRID_WIDTH_KEY, gridWidth)\n\n function onResize() {\n gridWidth.value = gridRef.value?.clientWidth ?? DEFAULT_GRID_WIDTH\n }\n\n const getGutterValue = (gutter: GridGutterValue) => {\n if (typeof gutter === 'number') return gutter\n\n const { xxl, xl, lg, md, sm, xs } = gutter\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.xxl && !isEmpty(xxl)) return xxl\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.xl && !isEmpty(xl)) return xl\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.lg && !isEmpty(lg)) return lg\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.md && !isEmpty(md)) return md\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.sm && !isEmpty(sm)) return sm\n return xs\n }\n\n const gutterStyle = computed(() => {\n if (!props.gutter) return {}\n\n const gutterArray = Array.isArray(props.gutter) ? props.gutter : [props.gutter, 0]\n const horizontalGutter = getGutterValue(gutterArray[0]) || 0\n const verticalGutter = gutterArray[1] ? getGutterValue(gutterArray[1]) : 0\n\n return {\n gap: `${verticalGutter}px ${horizontalGutter}px`\n }\n })\n</script>\n\n<style lang=\"less\" scoped>\n .qd-grid {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n }\n</style>\n","<template>\n <div class=\"qd-grid-item\" :style=\"itemStyle\">\n <slot :item-style=\"itemStyle\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { GridGutterValue, QdGridItemProps } from './types'\n import { computed, inject, ref } from 'vue'\n import { isEmpty } from 'qidian-shared'\n import {\n DEFAULT_BREAKPOINTS,\n DEFAULT_COL,\n DEFAULT_GRID_WIDTH,\n DEFAULT_ROW,\n PROVIDE_GRID_ITEM_PROPS_KEY,\n PROVIDE_GRID_WIDTH_KEY\n } from './config'\n\n defineOptions({\n name: 'QdGridItem'\n })\n\n const props = defineProps<QdGridItemProps>()\n\n const defaultProps = inject(PROVIDE_GRID_ITEM_PROPS_KEY)\n const gridWidth = inject(PROVIDE_GRID_WIDTH_KEY, ref(DEFAULT_GRID_WIDTH))\n\n const reProps = computed(() => {\n const mergeGutterValue = (\n prop: GridGutterValue | undefined,\n defaultProp: GridGutterValue | undefined\n ): GridGutterValue | undefined => {\n if (!prop) return defaultProp\n if (!defaultProp) return prop\n if (typeof prop === 'number' || typeof defaultProp === 'number') return prop\n\n return {\n ...defaultProp,\n ...prop\n }\n }\n\n return {\n col: mergeGutterValue(props.col, defaultProps?.col),\n row: mergeGutterValue(props.row, defaultProps?.row)\n }\n })\n\n const getColSpan = computed(() => {\n const { col } = reProps.value\n if (isEmpty(col)) return DEFAULT_COL\n if (typeof col === 'number') return col\n\n const { span, xxl, xl, lg, md, sm, xs } = col!\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.xxl && !isEmpty(xxl)) return xxl\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.xl && !isEmpty(xl)) return xl\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.lg && !isEmpty(lg)) return lg\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.md && !isEmpty(md)) return md\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.sm && !isEmpty(sm)) return sm\n return xs ?? span ?? DEFAULT_COL\n })\n\n const getRowSpan = computed(() => {\n const { row } = reProps.value\n if (isEmpty(row)) return DEFAULT_ROW\n if (typeof row === 'number') return row\n\n const { span, xxl, xl, lg, md, sm, xs } = row!\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.xxl && !isEmpty(xxl)) return xxl\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.xl && !isEmpty(xl)) return xl\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.lg && !isEmpty(lg)) return lg\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.md && !isEmpty(md)) return md\n if (gridWidth.value >= DEFAULT_BREAKPOINTS.sm && !isEmpty(sm)) return sm\n return xs ?? span ?? DEFAULT_ROW\n })\n\n const itemStyle = computed(() => ({\n gridColumn: `span ${getColSpan.value}`,\n gridRow: `span ${getRowSpan.value}`\n }))\n</script>\n\n<style lang=\"less\" scoped>\n .qd-grid-item {\n min-width: 0;\n }\n</style>\n","<template>\n <qd-grid-item class=\"qd-form-item\" v-bind=\"reProps.gridItemOptions\">\n <t-form-item v-bind=\"reProps.formItemOptions\">\n <slot :crud-mode=\"reProps.formItemOptions.crudMode\" :context=\"context\">\n <qd-config-renderer\n v-if=\"reProps.configRendererOptions.config\"\n class=\"qd-form-item__component\"\n v-bind=\"(reProps.configRendererOptions as QdConfigRendererProps)\"\n />\n </slot>\n </t-form-item>\n </qd-grid-item>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdFormItemProps } from './types'\n import type { QdConfigRendererProps } from '../config-renderer'\n import { computed } from 'vue'\n import { FormItem as TFormItem } from 'tdesign-vue-next'\n import { QdGridItem } from '../grid'\n import { QdConfigRenderer } from '../config-renderer'\n import { qdFormItemProps } from './props'\n\n defineOptions({\n name: 'QdFormItem'\n })\n\n const props = withDefaults(defineProps<QdFormItemProps>(), qdFormItemProps)\n\n const reProps = computed(() => {\n const { col, row, context, component, required, rules, ...formItemOptions } = props\n const reRules = rules || []\n\n if (component) {\n const comp = component.is\n const compName = (\n typeof comp === 'string' ? comp : !comp ? '' : 'name' in comp ? comp.name || '' : ''\n ).toLowerCase()\n const messagePrefix =\n compName.search('select') > -1 ||\n compName.search('checkbox') > -1 ||\n compName.search('radio') > -1\n ? '请选择'\n : compName.search('upload') > -1\n ? '请上传'\n : '请输入'\n\n if (required && !reRules.some((item) => item.required)) {\n if (required && typeof required === 'string') {\n reRules.push({ required: true, message: required })\n } else {\n reRules.push({ required: true, message: `${messagePrefix}${formItemOptions.label}` })\n }\n }\n\n component.placeholder = component.placeholder ?? `${messagePrefix}${formItemOptions.label}`\n component.clearable =\n component.clearable ?? (required ? false : (props.defaultClearable ?? true))\n }\n\n return {\n formItemOptions: {\n ...formItemOptions,\n rules: reRules\n },\n gridItemOptions: { col, row },\n configRendererOptions: { context, config: component }\n }\n })\n</script>\n\n<style lang=\"less\" scoped>\n .qd-form-item {\n & > :deep(.t-form__item) {\n & > .t-form__controls > .t-form__controls-content > * {\n width: 100%;\n }\n }\n\n &__component {\n width: 100%;\n }\n }\n</style>\n","import type { InjectionKey } from 'vue'\nimport type { QdFormBeforeSubmitQueueItem } from './types'\n\n/** 提交前需要处理的队列 */\nexport const PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE: InjectionKey<\n (item: QdFormBeforeSubmitQueueItem) => void\n> = Symbol('QdFormAddBeforeSubmitQueue')\n","import type {\n DialogOptions,\n MessageInfoOptions,\n NotificationOptions,\n MessageInstance,\n NotificationInstance,\n TNode\n} from 'tdesign-vue-next'\nimport { MessagePlugin, DialogPlugin, NotifyPlugin } from 'tdesign-vue-next'\nimport { useConfig } from '../components/config-provider/useConfig'\nimport { isEmpty, suspectedWrapperPromise } from 'qidian-shared'\n\ninterface QdDialogOptions extends Omit<DialogOptions, 'onConfirm'> {\n onConfirm?: (context: {\n e: MouseEvent | KeyboardEvent\n }) => void | Promise<void> | boolean | Promise<boolean>\n}\n\nexport function useModal() {\n const { t } = useConfig('modal')\n\n function messageOptionsMerge(content: string | MessageInfoOptions): MessageInfoOptions {\n if (typeof content === 'string') {\n return {\n content,\n zIndex: 100001\n }\n }\n\n return {\n zIndex: 100001,\n ...content\n }\n }\n\n function messageCore(\n theme: 'info' | 'success' | 'warning' | 'error' | 'loading',\n content: string | MessageInfoOptions,\n duration?: number\n ) {\n return MessagePlugin[theme](messageOptionsMerge(content), duration)\n }\n\n function msg(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('info', content, duration)\n }\n\n function msgSuccess(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('success', content, duration)\n }\n\n function msgError(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('error', content, duration)\n }\n\n function msgWarning(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('warning', content, duration)\n }\n\n function msgLoading(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('loading', content, duration)\n }\n\n function msgClose(options: Promise<MessageInstance>) {\n MessagePlugin.close(options)\n }\n\n function msgCloseAll() {\n MessagePlugin.closeAll()\n }\n\n function alertOptionsMerge(body: string | DialogOptions): QdDialogOptions {\n if (typeof body === 'string') {\n return {\n header: t('systemPromptText'),\n body,\n zIndex: 100001\n }\n }\n\n return {\n header: t('systemPromptText'),\n zIndex: 100001,\n ...body\n }\n }\n\n function alertCore(\n theme: 'default' | 'info' | 'success' | 'error' | 'warning',\n content: string | QdDialogOptions\n ) {\n const options = alertOptionsMerge(content)\n const instance = DialogPlugin.alert({\n ...options,\n theme: theme === 'error' ? 'danger' : theme,\n onConfirm: async (context) => {\n const { onConfirm } = options\n if (onConfirm) {\n const [err, res] = await suspectedWrapperPromise(onConfirm(context))\n if (err) return\n if (isEmpty(res) || res) instance?.destroy()\n return\n }\n\n instance?.destroy()\n }\n })\n\n return instance\n }\n\n function alert(content: string | DialogOptions) {\n return alertCore('info', content)\n }\n\n function alertSuccess(content: string | DialogOptions) {\n return alertCore('success', content)\n }\n\n function alertError(content: string | DialogOptions) {\n return alertCore('error', content)\n }\n\n function alertWarning(content: string | DialogOptions) {\n return alertCore('warning', content)\n }\n\n function notifyOptionsMerge(content: string | TNode): NotificationOptions {\n return {\n content,\n zIndex: 100001\n }\n }\n\n function notifyCore(theme: 'info' | 'success' | 'error' | 'warning', content: string | TNode) {\n return NotifyPlugin[theme](notifyOptionsMerge(content))\n }\n\n function notify(content: string | TNode) {\n return notifyCore('info', content)\n }\n\n function notifySuccess(content: string | TNode) {\n return notifyCore('success', content)\n }\n\n function notifyError(content: string | TNode) {\n return notifyCore('error', content)\n }\n\n function notifyWarning(content: string | TNode) {\n return notifyCore('warning', content)\n }\n\n function notifyClose(options: Promise<NotificationInstance>) {\n NotifyPlugin.close(options)\n }\n\n function notifyCloseAll() {\n NotifyPlugin.closeAll()\n }\n\n function confirm(\n options:\n | string\n | Pick<\n DialogOptions,\n | 'header'\n | 'body'\n | 'theme'\n | 'confirmBtn'\n | 'cancelBtn'\n | 'closeBtn'\n | 'closeOnEscKeydown'\n | 'closeOnOverlayClick'\n >,\n onConfirm: (context: {\n e: MouseEvent | KeyboardEvent\n }) => void | Promise<void> | boolean | Promise<boolean>,\n onClose?: () => void\n ) {\n const reOptions = alertOptionsMerge(options)\n const instance = DialogPlugin.confirm({\n ...reOptions,\n onConfirm: async (context) => {\n instance.update({\n confirmBtn: { loading: true },\n closeOnOverlayClick: false,\n closeOnEscKeydown: false,\n closeBtn: false,\n cancelBtn: { disabled: true }\n })\n const [err, res] = await suspectedWrapperPromise(onConfirm(context))\n\n if (err) {\n instance.update({\n confirmBtn: { loading: false },\n closeOnOverlayClick: reOptions.closeOnOverlayClick,\n closeOnEscKeydown: reOptions.closeOnEscKeydown,\n closeBtn: reOptions.closeBtn,\n cancelBtn: { disabled: false }\n })\n return\n }\n\n if (isEmpty(res) || res) instance?.destroy()\n },\n onClose: () => {\n onClose?.()\n instance?.destroy()\n }\n })\n\n return instance\n }\n\n return {\n messageOptionsMerge,\n messageCore,\n msg,\n msgSuccess,\n msgError,\n msgWarning,\n msgLoading,\n msgClose,\n msgCloseAll,\n\n alertOptionsMerge,\n alertCore,\n alert,\n alertSuccess,\n alertError,\n alertWarning,\n\n notifyOptionsMerge,\n notifyCore,\n notify,\n notifySuccess,\n notifyError,\n notifyWarning,\n notifyClose,\n notifyCloseAll,\n confirm\n }\n}\n","<template>\n <t-form\n ref=\"form\"\n :class=\"['qd-form', $slots.footer ? 'qd-form--has-footer' : '']\"\n v-loading=\"formLoad\"\n v-bind=\"reProps.formOptions\"\n :data=\"data\"\n @submit=\"handleSubmit\"\n >\n <slot name=\"header\" :context=\"data\" />\n\n <slot v-bind=\"reProps.gridOptions\">\n <qd-grid v-bind=\"reProps.gridOptions\">\n <qd-form-item\n v-for=\"(item, index) in reProps.formItems\"\n :key=\"index\"\n :crud-mode=\"crudMode\"\n :context=\"data\"\n :default-clearable=\"defaultClearable\"\n v-bind=\"item\"\n />\n </qd-grid>\n </slot>\n\n <slot name=\"footer\" :context=\"data\" />\n </t-form>\n</template>\n\n<script setup lang=\"ts\" generic=\"FD extends Data = Data\">\n import type { Data, FormInstanceFunctions, SubmitContext } from 'tdesign-vue-next'\n import type { QdFormBeforeSubmitQueueItem, QdFormProps } from './types'\n import { computed, nextTick, provide, onBeforeUnmount, useTemplateRef, ref, onMounted } from 'vue'\n import { Form as TForm, LoadingDirective } from 'tdesign-vue-next'\n import QdFormItem from './item.vue'\n import { QdGrid } from '../grid'\n import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from './config'\n import { suspectedWrapperPromise } from 'qidian-shared'\n import { qdFormProps } from './props'\n import { useVModels } from '@vueuse/core'\n import { useModal } from '../../hooks/useModal'\n\n defineOptions({\n name: 'QdForm'\n })\n\n const vLoading = LoadingDirective\n\n type Props = QdFormProps<Data>\n\n const props = withDefaults(defineProps<QdFormProps<Data>>(), qdFormProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['data']]\n }>()\n const { data } = useVModels(props, emit, { passive: true })\n\n const { msgError } = useModal()\n\n const beforeSubmitQueue: QdFormBeforeSubmitQueueItem[] = [] // 提交前需要处理的队列\n provide(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, (item: QdFormBeforeSubmitQueueItem) => {\n const index = beforeSubmitQueue.length\n nextTick(() => {\n beforeSubmitQueue.push(item)\n })\n onBeforeUnmount(() => {\n beforeSubmitQueue.splice(index, 1)\n })\n })\n\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n const submitShowErrorMessage = ref<boolean | undefined>()\n\n const reProps = computed(() => {\n const { grid, gutter, items, onSubmit, data, scrollToFirstError, loading: externalLoad, ...formOptions } = props\n\n return {\n externalLoad,\n formOptions: {\n ...formOptions,\n scrollToFirstError: submitShowErrorMessage.value === false ? '' : scrollToFirstError\n },\n formItems: items,\n gridOptions: {\n grid,\n gutter\n },\n onSubmit,\n models: { data }\n }\n })\n\n const submitLoad = ref(false)\n const formLoad = computed(() => {\n return {\n loading: reProps.value.externalLoad || submitLoad.value,\n size: 'small',\n ...props.loadingProps\n }\n })\n\n async function handleSubmit(context: SubmitContext) {\n const showErrorMessage = submitShowErrorMessage.value ?? props.showErrorMessage\n if (showErrorMessage && context.firstError) {\n msgError(context.firstError)\n }\n\n if (context.validateResult === true || !showErrorMessage) {\n submitLoad.value = true\n const queueRes = await Promise.all(\n beforeSubmitQueue.map((item) => suspectedWrapperPromise(item()))\n )\n submitLoad.value = false\n\n const reQueueRes = { success: true, message: '' }\n queueRes.some(([err, res]) => {\n if (err) {\n reQueueRes.success = false\n reQueueRes.message = err.message\n return true\n }\n\n if (res === false) {\n reQueueRes.success = false\n return true\n }\n\n if (typeof res === 'object' && !res.success) {\n reQueueRes.success = false\n reQueueRes.message = res.message || ''\n return true\n }\n })\n\n if (reQueueRes.success === false) {\n if (showErrorMessage && reQueueRes.message) {\n msgError(reQueueRes.message)\n }\n return\n }\n }\n\n props.onSubmit?.({\n ...context,\n showErrorMessage,\n formData: data.value,\n crudMode: reProps.value.formOptions.crudMode\n })\n }\n\n const expose = {} as FormInstanceFunctions\n\n onMounted(() => {\n const submit: FormInstanceFunctions['submit'] = async (params) => {\n submitShowErrorMessage.value = params?.showErrorMessage\n formRef.value?.submit(params)\n }\n\n Object.assign(expose, formRef.value, { submit })\n })\n\n defineExpose(expose)\n</script>\n","<template>\n <qd-dialog v-model:visible=\"visible\" v-bind=\"reProps.qdDialogOptions\">\n <template v-if=\"reProps.crudMode === 'view'\" #footer>\n <t-button theme=\"default\" @click=\"hide\">{{ t('closeText') }}</t-button>\n </template>\n\n <template v-for=\"name in extractSlotsWithoutPrefix($slots, 'form')\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" :context=\"data\" />\n </template>\n\n <qd-form ref=\"form\" v-model:data=\"data\" v-bind=\"reProps.qdFormOptions\">\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'form')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-form>\n </qd-dialog>\n</template>\n\n<script setup lang=\"ts\" generic=\"FD extends Data = Data\">\n import type { QdDialogDone, QdDialogFormInstanceFunctions, QdDialogFormProps } from './types'\n import type { FormInstanceFunctions, Data } from 'tdesign-vue-next'\n import type { QdFormProps, QdFormSubmitContext } from '../form'\n import { Button as TButton } from 'tdesign-vue-next'\n import { qdDialogFormProps } from './props'\n import { computed, onMounted, useTemplateRef, ref } from 'vue'\n import { useVModels } from '@vueuse/core'\n import {\n extractSlotsWithoutPrefix,\n extractSlotsWithPrefix,\n suspectedWrapperPromise\n } from 'qidian-shared'\n import QdDialog from './index.vue'\n import { QdForm } from '../form'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdDialogFormProps<FD>\n\n const props = withDefaults(defineProps<Props>(), qdDialogFormProps)\n const emit = defineEmits<{\n 'update:visible': [Props['visible']]\n 'update:data': [Props['data']]\n }>()\n const { visible, data } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n\n const formSubmitLoad = ref(false)\n\n const reProps = computed(() => {\n const {\n crudMode,\n data,\n visible: inVisible,\n wrapper,\n onSubmit,\n loading,\n ...qdFormOptions\n } = props\n const reConfirmLoading = formSubmitLoad.value || wrapper.confirmLoading\n\n return {\n crudMode,\n qdFormOptions: {\n ...qdFormOptions,\n loading,\n crudMode,\n onSubmit: async (context: QdFormSubmitContext<FD>) => {\n if (!onSubmit) return\n\n formSubmitLoad.value = true\n const [err, res] = await suspectedWrapperPromise(onSubmit(context))\n formSubmitLoad.value = false\n if (err || res === false) return\n\n visible.value = false\n }\n } as unknown as QdFormProps,\n qdDialogOptions: {\n ...wrapper,\n\n confirmLoading: reConfirmLoading,\n closeOnEscKeydown: loading || reConfirmLoading ? false : wrapper.closeOnEscKeydown,\n closeOnOverlayClick: loading || reConfirmLoading ? false : wrapper.closeOnOverlayClick,\n closeBtn: loading || reConfirmLoading ? false : wrapper.closeBtn,\n\n confirmBtn:\n loading || reConfirmLoading\n ? typeof wrapper.confirmBtn === 'object'\n ? { ...wrapper.confirmBtn, disabled: true }\n : { disabled: true }\n : wrapper.confirmBtn,\n cancelBtn:\n loading || reConfirmLoading\n ? typeof wrapper.cancelBtn === 'object'\n ? { ...wrapper.cancelBtn, disabled: true }\n : { disabled: true }\n : wrapper.cancelBtn,\n\n onConfirm: (done: QdDialogDone) => {\n const onConfirm = wrapper.onConfirm\n if (onConfirm) {\n onConfirm?.(done)\n return\n }\n\n formRef.value?.submit()\n }\n },\n models: { data, visible: inVisible }\n }\n })\n\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n\n function show(newData?: FD) {\n if (newData != undefined) data.value = newData\n visible.value = true\n }\n\n function hide() {\n visible.value = false\n }\n\n const expose = {\n show,\n hide\n } as QdDialogFormInstanceFunctions\n\n onMounted(() => {\n Object.assign(expose, formRef.value)\n })\n\n defineExpose(expose)\n</script>\n","<template>\n <qd-card class=\"qd-crud-search\">\n <qd-form ref=\"form\" v-model:data=\"data\" v-bind=\"reProps.formOptions\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </qd-form>\n </qd-card>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdSearchProps } from './types'\n import { computed, onMounted, useTemplateRef } from 'vue'\n import { useVModel } from '@vueuse/core'\n import type { FormInstanceFunctions } from 'tdesign-vue-next'\n import { qdCrudSearchProps } from './props'\n import { QdCard } from '../card'\n import { QdForm } from '../form'\n\n defineOptions({\n name: 'QdCrudSearch'\n })\n\n const props = withDefaults(defineProps<QdSearchProps>(), qdCrudSearchProps)\n const emit = defineEmits<{\n 'update:modelValue': [QdSearchProps['data']]\n }>()\n const data = useVModel(props, 'data', emit, { passive: true })\n\n const reProps = computed(() => {\n const { data, ...formOptions } = props\n\n return {\n formOptions,\n models: { data }\n }\n })\n\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n\n const expose = {} as FormInstanceFunctions\n\n onMounted(() => {\n Object.assign(expose, formRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-search {\n & > :deep(.t-card__body) {\n height: 100%;\n }\n }\n</style>\n","import type { Ref } from 'vue'\nimport type { QdDictItem } from './types'\nimport { suspectedWrapperPromise, to } from 'qidian-shared'\nimport { ref, toRefs, watchEffect } from 'vue'\n\nconst dictCache = new Map<string, QdDictItem[]>()\nconst dictPromiseCache = new Map<string, Promise<QdDictItem[]>>()\n\nexport function useDict<T extends string>(\n ...args: T[]\n): { [K in T]: Ref<QdDictItem[]> } & { [K in T as `${K}Load`]: Ref<boolean> } {\n const res = ref<Record<T, QdDictItem[]>>({} as Record<T, QdDictItem[]>)\n const loadingMap = ref<Record<T, boolean>>({} as Record<T, boolean>)\n\n args.forEach(async (dictType) => {\n res.value[dictType] = [] as QdDictItem[]\n const loadKey = `${dictType}Load`\n loadingMap.value[loadKey] = false\n\n // 先从缓存中获取\n if (dictCache.has(dictType)) {\n res.value[dictType] = dictCache.get(dictType)!\n } else {\n // 设置 loading\n loadingMap.value[loadKey] = true\n\n // 缓存中没有则调用服务获取\n let dictPromise: Promise<QdDictItem[]>\n\n if (dictPromiseCache.has(dictType)) {\n dictPromise = dictPromiseCache.get(dictType)!\n } else {\n dictPromise = getDict(dictType)\n dictPromiseCache.set(dictType, dictPromise)\n }\n\n const [dictErr, dictRes] = await to(dictPromise)\n if (dictErr) {\n loadingMap.value[loadKey] = false\n dictPromiseCache.delete(dictType)\n return\n }\n\n dictCache.set(dictType, dictRes as QdDictItem[])\n res.value[dictType] = dictRes as QdDictItem[]\n loadingMap.value[loadKey] = false\n dictPromiseCache.delete(dictType)\n }\n })\n\n const result = toRefs(res.value) as { [K in T]: Ref<QdDictItem[]> }\n const loadingRefs = toRefs(loadingMap.value) as { [K in T as `${K}Load`]: Ref<boolean> }\n\n return { ...result, ...loadingRefs }\n}\n\ninterface UseDictDynamicOptions {\n onInit?: (options: QdDictItem[]) => void\n}\n\nexport function useDictDynamic(\n dictType: Ref<string | undefined>,\n hookOptions?: UseDictDynamicOptions\n): {\n options: Ref<QdDictItem[]>\n loading: Ref<boolean>\n} {\n const dictOptions = ref<QdDictItem[]>([])\n const loading = ref(false)\n\n async function loadDict(type?: string) {\n if (!type) {\n dictOptions.value = []\n hookOptions?.onInit?.([])\n return\n }\n\n // 先从缓存中获取\n if (dictCache.has(type)) {\n dictOptions.value = dictCache.get(type)!\n hookOptions?.onInit?.(dictOptions.value)\n return\n }\n\n // 设置 loading\n loading.value = true\n\n // 缓存中没有则调用服务获取\n let dictPromise: Promise<QdDictItem[]>\n\n if (dictPromiseCache.has(type)) {\n dictPromise = dictPromiseCache.get(type)!\n } else {\n dictPromise = getDict(type)\n dictPromiseCache.set(type, dictPromise)\n }\n\n const [dictErr, dictRes] = await to(dictPromise)\n if (dictErr) {\n dictOptions.value = []\n loading.value = false\n dictPromiseCache.delete(type)\n hookOptions?.onInit?.([])\n return\n }\n\n dictCache.set(type, dictRes as QdDictItem[])\n dictOptions.value = dictRes as QdDictItem[]\n loading.value = false\n dictPromiseCache.delete(type)\n hookOptions?.onInit?.(dictOptions.value)\n }\n\n watchEffect(() => {\n loadDict(dictType.value)\n })\n\n return {\n options: dictOptions,\n loading\n }\n}\n\nasync function getDict(dictType: string) {\n const dictOptions = window.__QIDIAN_DICT__\n if (!dictOptions) {\n const msg = '[useDict] 字典服务未提供,请确保使用了 QdConfigProvider'\n console.warn(msg)\n throw new Error(msg)\n }\n\n const { service, transformParams, transformRes } = dictOptions\n\n let currentParams = dictType\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: QdDictItem[] | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdDictItem[]\n }\n\n return res\n}\n\nexport type { QdDictItem } from './types'\n","import type { Ref } from 'vue'\nimport type { TdFormProps } from 'tdesign-vue-next'\nimport { isBoolean } from 'lodash-es'\nimport { computed, getCurrentInstance, inject } from 'vue'\n\nexport function useReadonly(context?: {\n beforeReadonly?: Ref<boolean>\n afterReadonly?: Ref<boolean>\n}) {\n const currentInstance = getCurrentInstance()!\n const componentReadonly = computed(() => currentInstance.props.Readonly as boolean)\n\n const formReadonly = inject<{\n readonly: Ref<TdFormProps['readonly']>\n }>('formReadonly', Object.create(null))\n\n return computed(() => {\n if (isBoolean(context?.beforeReadonly?.value)) return context.beforeReadonly.value\n // Component\n if (isBoolean(componentReadonly.value)) return componentReadonly.value\n // ComponentGroup\n if (isBoolean(context?.afterReadonly?.value)) return context.afterReadonly.value\n // Form\n if (isBoolean(formReadonly.readonly?.value)) return formReadonly.readonly.value\n\n return false\n })\n}\n","import type { Ref } from 'vue'\nimport type { TdFormProps } from 'tdesign-vue-next'\nimport { isBoolean } from 'lodash-es'\nimport { computed, getCurrentInstance, inject } from 'vue'\n\nexport function useDisabled(context?: {\n beforeDisabled?: Ref<boolean>\n afterDisabled?: Ref<boolean>\n}) {\n const currentInstance = getCurrentInstance()!\n const componentDisabled = computed(() => currentInstance.props.disabled as boolean)\n\n const formDisabled = inject<{\n disabled: Ref<TdFormProps['disabled']>\n }>('formDisabled', Object.create(null))\n\n return computed(() => {\n if (isBoolean(context?.beforeDisabled?.value)) return context.beforeDisabled.value\n // Component\n if (isBoolean(componentDisabled.value)) return componentDisabled.value\n // ComponentGroup\n if (isBoolean(context?.afterDisabled?.value)) return context.afterDisabled.value\n // Form\n if (isBoolean(formDisabled.disabled?.value)) return formDisabled.disabled.value\n\n return false\n })\n}\n","<template>\n <div class=\"qd-crud-table\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n v-show=\"searchVisible\"\n ref=\"search\"\n v-model:data=\"searchData\"\n :class=\"[!searchVisible ? 'qd-crud-search--hide' : '']\"\n v-bind=\"reProps.searchOptions\"\n :on-submit=\"triggerSearch\"\n >\n <template #footer>\n <t-space align=\"center\" size=\"small\">\n <t-button type=\"submit\" @click=\"handleSearch\">{{ t('searchText') }}</t-button>\n <t-button variant=\"outline\" @click=\"handleResetSearch\">{{ t('resetText') }}</t-button>\n </t-space>\n </template>\n </qd-crud-search>\n\n <qd-card class=\"qd-crud-table__body\">\n <div class=\"qd-crud-table__toolbar\">\n <t-space align=\"center\" size=\"small\">\n <slot name=\"actions\">\n <template v-for=\"(item, index) in reProps.actions\" :key=\"item.uid || index\">\n <qd-config-renderer\n v-hasPermi=\"item.permi\"\n :context=\"getConfigRendererCtx(item)\"\n :config=\"{\n is: TButton,\n ...item,\n form: undefined,\n onClick: buildActionOnClick(item),\n disabled: buildActionDisabled(item)\n }\"\n />\n </template>\n </slot>\n </t-space>\n\n <t-space align=\"center\" size=\"small\">\n <!-- 展开/收起搜索 -->\n <t-tooltip\n v-if=\"reProps.searchOptions?.items?.length\"\n :content=\"searchVisible ? t('collapseSearchText') : t('expandSearchText')\"\n >\n <t-button variant=\"text\" shape=\"square\" @click=\"toggleSearchVisible\">\n <template #icon><search-icon /></template>\n </t-button>\n </t-tooltip>\n\n <!-- 刷新列表 -->\n <t-tooltip :content=\"t('refreshText')\">\n <t-button variant=\"text\" shape=\"square\" @click=\"handleRefresh\">\n <template #icon><refresh-icon /></template>\n </t-button>\n </t-tooltip>\n\n <!-- 展开/收起树 -->\n <t-tooltip\n v-if=\"!isEmpty(reProps.serviceTableOptions.tree) && !reProps.serviceTableOptions.tree!.lazyLoad\"\n :content=\"treeIsExpand ? t('collapseTreeText') : t('expandTreeText')\"\n >\n <t-button variant=\"text\" shape=\"square\" @click=\"toggleTreeExpandAll\">\n <template #icon>\n <unfold-less-icon v-if=\"treeIsExpand\" />\n <unfold-more-icon v-else />\n </template>\n </t-button>\n </t-tooltip>\n\n <!-- 列配置 -->\n <t-tooltip\n v-if=\"reProps.serviceTableOptions.columnController?.hideTriggerButton !== true\"\n :content=\"t('columnControllerText')\"\n >\n <t-button variant=\"text\" shape=\"square\" @click=\"openColumnController\">\n <template #icon><setting-icon /></template>\n </t-button>\n </t-tooltip>\n </t-space>\n </div>\n\n <qd-service-table\n ref=\"table\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"activeRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-row-keys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n v-bind=\"reProps.serviceTableOptions\"\n >\n <template #operation=\"slotProps\">\n <slot name=\"table-operation\" v-bind=\"slotProps\">\n <t-space v-if=\"reProps.rowActions?.length\" align=\"center\" :size=\"0\" @click.stop>\n <template #separator>\n <t-divider layout=\"vertical\" />\n </template>\n\n <template v-for=\"(item, index) in reProps.rowActions\" :key=\"item.uid || index\">\n <qd-config-renderer\n v-hasPermi=\"item.permi\"\n :context=\"getConfigRendererCtx(item, slotProps)\"\n :config=\"{ is: TLink, ...item, onClick: buildActionOnClick(item, slotProps) }\"\n />\n </template>\n </t-space>\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-table>\n </qd-card>\n\n <qd-config-renderer\n v-for=\"(dialogForm, uid) in dialogFormMap\"\n :key=\"uid\"\n :config=\"{\n is: QdDialogForm,\n ...dialogForm.form,\n vModelVisible: 'self.visible',\n vModelData: 'self.data',\n crudMode: dialogForm.crudMode\n }\"\n :context=\"getConfigRendererCtx(dialogForm)\"\n />\n </div>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import type { ShallowRef } from 'vue'\n import type { PrimaryTableCellParams, TableRowData, TableRowValue } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type {\n QdCrudTableAction,\n QdCrudTableDeleteAction,\n QdCrudTableInstanceFunctions,\n QdCrudTableProps,\n QdCrudTableRowAction,\n QdCrudTableWrapper,\n TableDialogServiceRes\n } from './types'\n import type { QdServiceTableProps } from '../service'\n import type { QdFormSubmitContext } from '../form'\n\n import {\n computed,\n nextTick,\n reactive,\n useTemplateRef,\n ref,\n onMounted,\n shallowRef,\n triggerRef\n } from 'vue'\n import { useVModels } from '@vueuse/core'\n import {\n easyCopy,\n extractSlotsWithPrefix,\n generateRandomString,\n isEmpty,\n suspectedWrapperPromise,\n to\n } from 'qidian-shared'\n import { cloneDeep, merge } from 'lodash-es'\n import { qdCrudTableProps } from './props'\n import { hasPermiDirective } from '../../directive'\n import { useConfig } from '../config-provider/useConfig'\n\n import {\n Button as TButton,\n Link as TLink,\n Divider as TDivider,\n Space as TSpace,\n Tooltip as TTooltip\n } from 'tdesign-vue-next'\n import {\n AddIcon,\n RefreshIcon,\n SearchIcon,\n SettingIcon,\n UnfoldMoreIcon,\n UnfoldLessIcon\n } from 'tdesign-icons-vue-next'\n import { QdServiceTable } from '../service'\n import { QdDialogForm } from '../dialog'\n import QdCrudSearch from './search.vue'\n import { QdConfigRenderer } from '../config-renderer'\n import { QdCard } from '../card'\n\n import { useModal } from '../../hooks'\n import { qdServiceTableTreeConfig } from '../service/props'\n\n defineOptions({\n name: 'QdCrudTable'\n })\n\n const vHasPermi = hasPermiDirective\n\n type Props = QdCrudTableProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudTableProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n\n 'update:data': [Props['data']]\n 'update:selectedRowKeys': [Props['selectedRowKeys']]\n 'update:activeRowKeys': [Props['activeRowKeys']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n searchData,\n\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, { passive: true })\n\n const { t } = useConfig('crud')\n const { msgError, msgSuccess, alertWarning, confirm } = useModal()\n\n const treeIsExpand = computed(() => !!expandedTreeNodes.value?.length)\n\n const dialogFormMap = reactive<\n Record<\n string,\n Pick<QdCrudTableWrapper, 'crudMode'> & {\n visible: boolean\n data?: unknown\n form: ShallowRef<NonNullable<QdCrudTableWrapper['form']>>\n }\n >\n >({})\n\n const reProps = computed(() => {\n const {\n data,\n searchData: inSearchData,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n transformParams,\n\n search,\n form,\n detail,\n\n add,\n actions,\n\n edit,\n view,\n del,\n rowActions,\n\n title,\n columns,\n selectType,\n ...serviceTableOptions\n } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n const reAdd = mergeAction(\n { crudMode: 'add', permiID: 'add', content: t('addText'), icon: () => <AddIcon /> },\n add,\n form\n )\n const reActions = [reAdd, ...buildActions(actions, form)].filter(Boolean) as QdCrudTableAction[]\n\n const reEdit = mergeAction(\n {\n crudMode: 'edit',\n permiID: 'edit',\n content: t('editText'),\n theme: 'primary',\n hover: 'color'\n },\n edit,\n form\n )\n const reView = mergeAction(\n {\n crudMode: 'view',\n permiID: 'query',\n content: t('viewText'),\n theme: 'primary',\n hover: 'color'\n },\n view,\n form\n )\n const reDel = mergeAction(\n {\n crudMode: 'del',\n permiID: 'remove',\n content: t('deleteText'),\n theme: 'danger',\n hover: 'color',\n selectType: 'multiple'\n },\n del,\n form\n )\n const reRowActions = [reEdit, reView, reDel, ...buildActions(rowActions, form)].filter(\n Boolean\n ) as QdCrudTableRowAction[]\n\n let reSelectType = selectType\n if (reDel?.selectType === 'multiple') {\n if (!reSelectType) reSelectType = 'multiple'\n\n const batchDel = mergeAction(\n {\n crudMode: 'del',\n permiID: 'remove',\n content: t('deleteText'),\n theme: 'danger',\n variant: 'outline',\n selectType: 'multiple'\n },\n del,\n form\n )\n\n reActions.splice(reAdd ? 1 : 0, 0, batchDel as QdCrudTableAction)\n }\n\n const reColumns = columns || []\n const operationLength = reRowActions.length\n if (operationLength) {\n const operationIdx = reColumns.findIndex((item) => item.colKey === 'operation')\n const defaultOperation: (typeof reColumns)[number] = {\n title: t('operationText'),\n colKey: 'operation',\n align: 'center',\n fixed: 'right',\n width: 28 * operationLength + 25 * operationLength - 1 + 32\n }\n\n if (operationIdx > -1) {\n reColumns[operationIdx] = {\n ...defaultOperation,\n ...reColumns[operationIdx]\n }\n } else {\n reColumns.push(defaultOperation)\n }\n }\n\n return {\n title,\n\n searchOptions: search,\n serviceTableOptions: {\n ...serviceTableOptions,\n selectType: reSelectType,\n columns: reColumns,\n transformParams: mergedTransformParams\n } as QdServiceTableProps<D, R, P, TP, Pag>,\n\n formOptions: form,\n detailOptions: detail,\n actions: reActions,\n rowActions: reRowActions,\n\n models: {\n data,\n searchData: inSearchData,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const tableRef = useTemplateRef('table')\n\n const searchVisible = ref(true)\n const searchRef = useTemplateRef('search')\n let searchMode: 'refresh' | 'changeCurrent' = 'refresh'\n\n function handleSearch() {\n searchMode = 'changeCurrent'\n }\n\n function handleResetSearch() {\n searchMode = 'changeCurrent'\n searchRef.value?.reset()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n switch (searchMode) {\n case 'changeCurrent':\n tableRef.value?.changeCurrent(1)\n break\n default:\n tableRef.value?.refresh()\n break\n }\n }\n\n function handleRefresh() {\n searchMode = 'refresh'\n handleSearch()\n }\n\n function toggleSearchVisible() {\n searchVisible.value = !searchVisible.value\n }\n\n function toggleTreeExpandAll() {\n if (treeIsExpand.value) tableRef.value?.foldAll()\n else tableRef.value?.expandAll()\n }\n\n function openColumnController() {\n columnControllerVisible.value = true\n }\n\n function buildActions<T extends QdCrudTableAction | QdCrudTableRowAction>(\n actions?: T[],\n crudForm?: QdCrudTableWrapper['form']\n ) {\n if (!actions) return []\n\n return actions.map(\n (item) =>\n mergeAction(\n {\n variant: 'outline',\n theme: 'primary',\n hover: 'color'\n } as unknown as T,\n item,\n crudForm\n )!\n )\n }\n\n function mergeAction<\n T extends QdCrudTableAction | QdCrudTableRowAction | QdCrudTableDeleteAction\n >(\n defaultOptions: Partial<T>,\n currentOptions?: boolean | T,\n crudForm?: QdCrudTableWrapper['form']\n ) {\n if (currentOptions === false || !currentOptions) return\n\n const mergeOptions = merge(defaultOptions, currentOptions)\n\n mergeOptions.permi = buildActionPermi(mergeOptions as QdCrudTableAction)\n if (mergeOptions.crudMode !== 'del') {\n ;(mergeOptions as QdCrudTableAction | QdCrudTableRowAction).form = buildActionForm(\n mergeOptions as QdCrudTableAction,\n crudForm\n )\n }\n\n return mergeOptions as T\n }\n\n function getConfigRendererCtx<T = unknown, O = object>(self: T, other?: O) {\n return {\n tableData: data.value,\n searchData: searchData.value,\n selectedRowKeys: selectedRowKeys.value,\n activeRowKeys: activeRowKeys.value,\n self,\n ...other\n }\n }\n\n function actionIsCRU(crudMode: QdCrudTableAction['crudMode']) {\n return crudMode && ['add', 'edit', 'view'].includes(crudMode)\n }\n\n function buildActionPermi(action: QdCrudTableAction) {\n if (action.permi) return action.permi\n if (!props.permiPrefix || !action.permiID) return []\n return [`${props.permiPrefix}.${action.permiID}`]\n }\n\n function buildActionForm(action: QdCrudTableAction, crudForm?: QdCrudTableWrapper['form']) {\n const IsCRU = actionIsCRU(action.crudMode)\n if (!action.form && IsCRU) {\n action.form = cloneDeep(crudForm)\n }\n\n const { form } = action\n if (form) {\n if (action.crudMode === 'view') form.readonly = true\n\n if (!form.onSubmit && IsCRU) {\n form.onSubmit = async (context: QdFormSubmitContext) => {\n const { uid, service, transformParams, transformRes, crudMode } = action\n if (context.validateResult !== true || !service || !uid || !dialogFormMap[uid])\n return false\n\n let currentParams = easyCopy(context.formData)\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: TableDialogServiceRes | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as TableDialogServiceRes\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message) msgError(message)\n return false\n }\n\n msgSuccess(message || t('operationSuccessText'))\n\n if (crudMode === 'add') {\n tableRef.value?.changeCurrent(1)\n } else {\n tableRef.value?.refresh()\n }\n }\n }\n\n const { title } = props\n form.wrapper = merge(\n {},\n {\n header: `${action.content}${title ? ` ${title}` : ''}`\n },\n form.wrapper\n )\n }\n\n return action.form\n }\n\n function buildActionOnClick(\n action: QdCrudTableAction,\n originalParams?: PrimaryTableCellParams<D>\n ) {\n if (action.onClick) return action.onClick\n\n if (action.crudMode === 'del') {\n // 删除/批量删除\n const onClick = async () => {\n const { service, transformParams, transformRes } = action\n const row = originalParams?.row\n\n if (\n !service ||\n (!row && action.selectType !== 'multiple') ||\n (!row && !selectedRowKeys.value.length && action.selectType === 'multiple')\n ) {\n return\n }\n\n const childrenKey =\n reProps.value.serviceTableOptions.tree?.childrenKey ||\n qdServiceTableTreeConfig.childrenKey\n let delHasChild = false\n\n if (!row) {\n const rowKey = reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey\n\n delHasChild = selectedRowKeys.value.some((item: TableRowValue) => {\n const data = tableRef.value?.getData(item)\n if (!data) return false\n\n const children = data.row[childrenKey]\n if (isEmpty(children)) return false\n\n if (children === true) return true\n\n return children.some((child: D) => !selectedRowKeys.value.includes(child[rowKey]))\n })\n } else if (!isEmpty(row[childrenKey])) {\n delHasChild = true\n }\n\n if (delHasChild) {\n alertWarning(t('deleteHasChildrenText'))\n return\n }\n\n confirm(\n { body: t('deleteWrapperBodyText'), ...(action as QdCrudTableDeleteAction).wrapper },\n async () => {\n const params = row || selectedRowKeys.value\n let currentParams = row\n ? params[reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey]\n : selectedRowKeys.value\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(\n transformParams(easyCopy(params))\n )\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res: TableDialogServiceRes | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as TableDialogServiceRes\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message) msgError(message)\n return false\n }\n\n msgSuccess(message || t('deleteSuccessText'))\n if (!row) selectedRowKeys.value = []\n tableRef.value?.refresh()\n return true\n }\n )\n }\n\n return onClick\n }\n\n if (isEmpty(action.form) || !actionIsCRU(action.crudMode)) return\n\n // 新增/编辑/查看\n const onClick = async () => {\n if (!action.uid) action.uid = generateRandomString(16)\n\n const uid = action.uid!\n const form = shallowRef(action.form!)\n if (!dialogFormMap[uid]) {\n dialogFormMap[uid] = {\n visible: false,\n data: {},\n crudMode: action.crudMode,\n form\n }\n }\n\n await nextTick()\n dialogFormMap[uid].visible = true\n\n if (!action.crudMode || !['edit', 'view'].includes(action.crudMode) || !originalParams) {\n return\n }\n\n form.value.loading = true\n triggerRef(form)\n const [err, res] = await to(getDetail(originalParams.row))\n form.value.loading = false\n triggerRef(form)\n if (err) {\n dialogFormMap[uid].data = originalParams.row\n return\n }\n\n dialogFormMap[uid].data = res\n }\n\n return onClick\n }\n\n function buildActionDisabled(action: QdCrudTableAction) {\n if (action.disabled) return action.disabled\n\n switch (action.selectType) {\n case 'single':\n return selectedRowKeys.value.length !== 1\n case 'multiple':\n return selectedRowKeys.value.length === 0\n default:\n return false\n }\n }\n\n async function getDetail(params: NonNullable<Props['data']>[number]) {\n const { detailOptions } = reProps.value\n if (!detailOptions) return easyCopy(params)\n\n const { service, transformParams, transformRes } = detailOptions\n if (!service) return easyCopy(params)\n\n let currentParams = params[reProps.value.serviceTableOptions.rowKey || qdCrudTableProps.rowKey]\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(easyCopy(params)))\n if (tpErr) throw tpErr\n\n currentParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(service(currentParams))\n if (serviceErr) throw serviceErr\n\n let res\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes\n }\n\n return res\n }\n\n const expose = {} as QdCrudTableInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n Object.assign(expose, tableRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-table {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > .qd-crud-search:not(.qd-crud-search--hide) + &__body {\n margin-top: var(--td-comp-margin-l);\n }\n\n & > .qd-crud-search :deep(.qd-form) {\n display: flex;\n align-items: flex-end;\n flex-flow: row wrap;\n\n & > .qd-grid {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-l);\n }\n }\n\n &__body {\n flex: 1 1 0;\n overflow: hidden;\n\n & > :deep(.t-card__body) {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > .qd-service-table {\n flex: 1 1 0;\n overflow: hidden;\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n\n & + .qd-service-table {\n margin-top: var(--td-comp-margin-l);\n }\n }\n }\n</style>\n","<template>\n <div class=\"qd-crud-list\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n ref=\"search\"\n v-model:data=\"searchData\"\n v-bind=\"reProps.searchOptions\"\n :on-submit=\"triggerSearch\"\n >\n <template #footer>\n <t-space align=\"center\" size=\"small\">\n <t-button type=\"submit\" @click=\"handleSearch\">{{ t('searchText') }}</t-button>\n <t-button variant=\"outline\" @click=\"handleResetSearch\">{{ t('resetText') }}</t-button>\n </t-space>\n </template>\n </qd-crud-search>\n\n <div class=\"qd-crud-list__body\">\n <div v-if=\"$slots.actions\" class=\"qd-crud-list__toolbar\">\n <t-space align=\"center\" size=\"small\">\n <slot name=\"actions\" />\n </t-space>\n </div>\n\n <qd-service-list ref=\"list\" v-model:data=\"data\" v-bind=\"reProps.serviceListOptions\">\n <template v-if=\"$slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'list')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-list>\n </div>\n </div>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import type { TableRowData } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudListInstanceFunctions, QdCrudListProps } from './types'\n import type { QdFormSubmitContext } from '../form'\n import type { QdServiceListProps } from '../service'\n import { computed, onMounted, useTemplateRef } from 'vue'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n import { Space as TSpace, Button as TButton } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { qdCrudListProps } from './props'\n import { QdServiceList } from '../service'\n import QdCrudSearch from './search.vue'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdCrudListProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudListProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n }>()\n const { data, searchData } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n\n const reProps = computed(() => {\n const { data, searchData: inSearchData, search, transformParams, ...serviceListOptions } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n return {\n searchOptions: search,\n serviceListOptions: {\n ...serviceListOptions,\n transformParams: mergedTransformParams\n } as QdServiceListProps<D, R, P, TP, Pag>,\n models: {\n data,\n searchData: inSearchData\n }\n }\n })\n\n const searchRef = useTemplateRef('search')\n const listRef = useTemplateRef('list')\n\n function handleSearch() {}\n\n function handleResetSearch() {\n searchRef.value?.reset()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n listRef.value?.refresh()\n }\n\n const expose = {} as QdCrudListInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n Object.assign(expose, listRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-list {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > .qd-crud-search:not(.qd-crud-search--hide) + &__body {\n margin-top: var(--td-comp-margin-l);\n }\n\n & > .qd-crud-search :deep(.qd-form) {\n display: flex;\n align-items: flex-end;\n flex-flow: row wrap;\n\n & > .qd-grid {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-l);\n }\n }\n\n &__body {\n flex: 1 1 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n & > .qd-service-list {\n flex: 1 1 0;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n\n & + .qd-service-list {\n margin-top: var(--td-comp-margin-l);\n }\n }\n }\n</style>\n","import type { QdCrudListProps, QdCrudTableProps } from './types'\nimport type { TableRowData } from 'tdesign-vue-next'\nimport type { ServicePageParams, ServicePagination } from 'qidian-shared'\n\n/**\n * 定义 CRUD Table 配置,提供类型推导\n */\nexport function defineQdCrudTable<\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>(config: QdCrudTableProps<D, R, P, TP, Pag>): QdCrudTableProps<D, R, P, TP, Pag> {\n return config\n}\n\n/**\n * 定义 CRUD List 配置,提供类型推导\n */\nexport function defineQdCrudList<\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n>(config: QdCrudListProps<D, R, P, TP, Pag>): QdCrudListProps<D, R, P, TP, Pag> {\n return config\n}","<template>\n <t-select\n v-model=\"reModelValue\"\n v-model:input-value=\"inputValue\"\n v-model:popup-visible=\"popupVisible\"\n v-bind=\"reProps.selectOptions\"\n :options=\"dictOptions\"\n :loading=\"dictLoading || reProps.loading\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-select>\n</template>\n\n<script setup lang=\"ts\">\n import type { TdSelectProps } from 'tdesign-vue-next'\n import type { QdDictSelectProps } from './types'\n import { qdDictConvStrSeparator, qdDictSelectProps } from './props'\n import { Select as TSelect } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { computed, toRef } from 'vue'\n import { useDictDynamic } from '../../hooks'\n import { isEmpty } from 'qidian-shared'\n\n defineOptions({\n name: 'QdDictSelect'\n })\n\n const props = withDefaults(defineProps<QdDictSelectProps>(), qdDictSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [QdDictSelectProps['modelValue']]\n 'update:inputValue': [QdDictSelectProps['inputValue']]\n 'update:popupVisible': [QdDictSelectProps['popupVisible']]\n }>()\n\n const { modelValue, inputValue, popupVisible } = useVModels(props, emit, { passive: true })\n\n const reModelValue = computed({\n get: () => {\n const { convStr, selectOptions } = reProps.value\n const { multiple, valueType } = selectOptions\n if (!multiple || valueType === 'object') return modelValue.value\n\n if (isEmpty(modelValue.value)) return []\n if (typeof modelValue.value === 'string') {\n return modelValue.value.split(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n }\n return modelValue.value\n },\n set: (val) => {\n const { convStr, selectOptions } = reProps.value\n const { multiple, valueType } = selectOptions\n if (!multiple || valueType === 'object') {\n modelValue.value = val\n return\n }\n\n if (convStr && Array.isArray(val)) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n } else {\n modelValue.value = val\n }\n }\n })\n\n const dictType = toRef(props, 'dictType')\n\n const reProps = computed(() => {\n const {\n convStr,\n modelValue,\n inputValue,\n popupVisible,\n dictType,\n loading,\n defaultSelectFirst,\n ...selectOptions\n } = props\n\n return {\n convStr,\n dictType,\n loading,\n defaultSelectFirst,\n selectOptions: selectOptions as TdSelectProps,\n models: {\n modelValue,\n inputValue,\n popupVisible\n }\n }\n })\n\n const { options: dictOptions, loading: dictLoading } = useDictDynamic(dictType, {\n onInit: (options) => {\n // 当 defaultSelectFirst 为 true 且 modelValue 为空时,默认选中第一个\n if (reProps.value.defaultSelectFirst && isEmpty(reModelValue.value) && options.length) {\n reModelValue.value = options[0]?.value\n }\n }\n })\n</script>\n","<template>\n <t-radio-group\n v-model=\"modelValue\"\n v-loading=\"{ loading: dictLoading, size: 'small' }\"\n class=\"qd-dict-radio-group\"\n v-bind=\"reProps.radioOptions\"\n :options=\"dictOptions\"\n />\n</template>\n\n<script setup lang=\"ts\">\n import type { QdDictRadioGroupProps } from './types'\n import { qdDictRadioGroupProps } from './props'\n import { LoadingDirective, RadioGroup as TRadioGroup } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { computed, toRef } from 'vue'\n import { useDictDynamic } from '../../hooks'\n\n defineOptions({\n name: 'QdDictRadioGroup'\n })\n\n const vLoading = LoadingDirective\n\n const props = withDefaults(defineProps<QdDictRadioGroupProps>(), qdDictRadioGroupProps)\n const emit = defineEmits<{\n 'update:modelValue': [QdDictRadioGroupProps['modelValue']]\n }>()\n\n const { modelValue } = useVModels(props, emit, { passive: true })\n\n const dictType = toRef(props, 'dictType')\n\n const reProps = computed(() => {\n const { modelValue, dictType, ...radioOptions } = props\n\n return {\n dictType,\n radioOptions,\n models: {\n modelValue\n }\n }\n })\n\n const { options: dictOptions, loading: dictLoading } = useDictDynamic(dictType)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dict-radio-group {\n :deep(.t-loading) {\n position: relative;\n }\n }\n</style>\n","<template>\n <t-checkbox-group\n v-model=\"reModelValue\"\n v-loading=\"{ loading: dictLoading, size: 'small' }\"\n class=\"qd-dict-checkbox-group\"\n v-bind=\"reProps.checkboxOptions\"\n :options=\"dictOptions\"\n />\n</template>\n\n<script setup lang=\"ts\">\n import type { QdDictCheckboxGroupProps } from './types'\n import { qdDictCheckboxGroupProps, qdDictConvStrSeparator } from './props'\n import { LoadingDirective, CheckboxGroup as TCheckboxGroup } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { computed, toRef } from 'vue'\n import { useDictDynamic } from '../../hooks'\n import { isEmpty } from 'qidian-shared'\n\n defineOptions({\n name: 'QdDictCheckboxGroup'\n })\n\n const vLoading = LoadingDirective\n\n const props = withDefaults(defineProps<QdDictCheckboxGroupProps>(), qdDictCheckboxGroupProps)\n const emit = defineEmits<{\n 'update:modelValue': [QdDictCheckboxGroupProps['modelValue']]\n }>()\n\n const { modelValue } = useVModels(props, emit, { passive: true })\n\n const reModelValue = computed({\n get: () => {\n if (isEmpty(modelValue.value)) return []\n if (typeof modelValue.value === 'string') {\n const { convStr } = reProps.value\n return modelValue.value.split((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n }\n return modelValue.value\n },\n set: (val) => {\n const { convStr } = reProps.value\n if (convStr) {\n modelValue.value = val.join((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n } else {\n modelValue.value = val\n }\n }\n })\n\n const dictType = toRef(props, 'dictType')\n\n const reProps = computed(() => {\n const { modelValue, dictType, convStr, ...checkboxOptions } = props\n\n return {\n dictType,\n convStr,\n checkboxOptions,\n models: {\n modelValue\n }\n }\n })\n\n const { options: dictOptions, loading: dictLoading } = useDictDynamic(dictType)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dict-checkbox-group {\n :deep(.t-loading) {\n position: relative;\n }\n }\n</style>\n","<template>\n <div v-loading=\"{ loading: dictLoading, size: 'small' }\" class=\"qd-dict-tag\">\n <template v-for=\"(item, index) in matchOptions\">\n <span\n v-if=\"\n (!reProps.theme || reProps.theme === 'text') &&\n !variant &&\n (item.theme === 'text' || !item.theme)\n \"\n :key=\"item.value\"\n :class=\"item.class\"\n >\n <slot name=\"prefix\" :item=\"item\" />\n <slot :item=\"item\">{{ item.label }}</slot>\n <slot name=\"suffix\" :item=\"item\" />\n </span>\n\n <t-tag\n v-else\n :key=\"item.value + ''\"\n :index=\"index\"\n :size=\"reProps.size\"\n :shape=\"reProps.shape\"\n :theme=\"(reProps.theme || item.theme || 'default') as TdTagProps['theme']\"\n :variant=\"reProps.variant || item.variant || 'light'\"\n :class=\"item.class\"\n >\n <slot name=\"prefix\" :item=\"item\" />\n <slot :item=\"item\">{{ item.label }}</slot>\n <slot name=\"suffix\" :item=\"item\" />\n </t-tag>\n\n <template v-if=\"($slots.separator || separator) && matchOptions.length - 1 !== index\">\n <slot name=\"separator\">{{ separator }}</slot>\n </template>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { TdTagProps } from 'tdesign-vue-next'\n import type { QdDictTagProps } from './types'\n import { computed, toRef } from 'vue'\n import { Tag as TTag } from 'tdesign-vue-next'\n import { isEmpty } from 'qidian-shared'\n import { isNumber } from 'lodash-es'\n import { qdDictTagProps } from './props'\n import { useDictDynamic } from '../../hooks'\n\n defineOptions({\n name: 'QdDictTag'\n })\n\n const props = withDefaults(defineProps<QdDictTagProps>(), qdDictTagProps)\n\n const dictType = toRef(props, 'dictType')\n\n const reProps = computed(() => {\n const { options, ...otherOptions } = props\n\n return {\n ...otherOptions,\n options: options || dictOptions.value || []\n }\n })\n\n const { options: dictOptions, loading: dictLoading } = useDictDynamic(dictType)\n\n const reValue = computed(() => {\n const { value, strict } = reProps.value\n\n if (isEmpty(value)) return []\n if (Array.isArray(value)) return value.map((item) => (strict ? item : item.toString()))\n if (isNumber(value)) {\n return strict ? [value] : [value.toString()]\n }\n return String(value).split(',')\n })\n\n const matchOptions = computed(() => {\n const { options, strict } = reProps.value\n\n return options.filter((option) => {\n return reValue.value.includes(strict ? option.value : option.value.toString())\n })\n })\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dict-tag {\n display: inline-flex;\n align-items: center;\n flex-wrap: wrap;\n }\n</style>\n","export const qdUploadProps = {\n modelValue: () => [],\n files: () => [],\n convStr: false,\n valueMode: 'ossId',\n theme: 'file',\n draggable: undefined,\n autoUpload: false,\n allowUploadDuplicateFile: true,\n isBatchUpload: false,\n uploadAllFilesInOneRequest: false,\n method: 'POST',\n multiple: undefined,\n name: 'file',\n disabled: undefined,\n showImageFileName: true,\n showThumbnail: true,\n showUploadProgress: true,\n uploadPastedFiles: true,\n useMockProgress: true,\n withCredentials: false,\n del: undefined\n} as const\n\nexport const qdUploadSizeLimit = {\n unit: 'MB'\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","export const acceptMap = {\n default: [\n '.doc',\n '.docx',\n '.xlsx',\n '.xls',\n '.csv',\n '.ppt',\n '.pptx',\n '.txt',\n '.pdf',\n '.md',\n '.json'\n ],\n image: [\n '.xbm',\n '.tif',\n '.pjp',\n '.svgz',\n '.jpg',\n '.jpeg',\n '.ico',\n '.tiff',\n '.gif',\n '.svg',\n '.jfif',\n '.webp',\n '.png',\n '.bmp',\n '.pjpeg',\n '.avif'\n ]\n}\n","<template>\n <t-upload\n ref=\"upload\"\n :class=\"['qd-upload', `qd-upload--${reProps.theme}`]\"\n v-model:files=\"fileList\"\n v-bind=\"reProps.uploadOptions\"\n >\n <template v-if=\"theme === 'btn-image-popup'\">\n <t-space align=\"center\" size=\"small\">\n <t-button variant=\"outline\" :disabled=\"reProps.uploadOptions.disabled\">\n <template #icon><upload-icon /></template>\n {{\n !fileList.length\n ? t('triggerUploadText').fileInput\n : reProps.uploadOptions.max === 1 || !reProps.uploadOptions.multiple\n ? t('triggerUploadText').reupload\n : t('triggerUploadText').continueUpload\n }}\n </t-button>\n\n <t-popup v-if=\"fileList.length\" show-arrow trigger=\"click\">\n <t-badge :count=\"fileList.length\" size=\"small\" :offset=\"[2, 2]\" @click.stop>\n <t-button variant=\"outline\">\n <template #icon><browse-icon /></template>\n {{ t('viewFileText') }}\n </t-button>\n </t-badge>\n\n <template #content>\n <t-upload\n v-model:files=\"popupFileList\"\n theme=\"image\"\n :disabled=\"reProps.uploadOptions.disabled\"\n :on-remove=\"reProps.handlePopupRemove\"\n >\n <template #trigger><span style=\"display: none\"></span></template>\n </t-upload>\n </template>\n </t-popup>\n </t-space>\n </template>\n </t-upload>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n F extends UploadFile = UploadFile,\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP,\n UR = unknown,\n UP extends string | string[] = string | string[],\n TUP = UP,\n DR = unknown,\n DP extends string | number | (string | number)[] = string | number | (string | number)[],\n TDP = DP\n \"\n>\n import type {\n SizeLimitObj,\n TdUploadProps,\n UploadFile,\n UploadInstanceFunctions\n } from 'tdesign-vue-next'\n import type {\n QdUploadDeleteResult,\n QdUploadInstanceFunctions,\n QdUploadListOssByIdsResult,\n QdUploadProps\n } from './types'\n import { qdUploadProps, qdUploadSizeLimit } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, inject, onMounted, useTemplateRef, ref, watch } from 'vue'\n import {\n Upload as TUpload,\n Button as TButton,\n Popup as TPopup,\n Space as TSpace,\n Badge as TBadge\n } from 'tdesign-vue-next'\n import { UploadIcon, BrowseIcon } from 'tdesign-icons-vue-next'\n import {\n checkSameObject,\n easyCopy,\n isEmpty,\n isTypeByName,\n suspectedWrapperPromise,\n to,\n useTimer\n } from 'qidian-shared'\n import dayjs from 'dayjs'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { useConfig } from '../config-provider/useConfig'\n import { useModal, useDisabled, useReadonly } from '../../hooks'\n import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from '../form'\n import { acceptMap } from './config'\n import { qdDictConvStrSeparator } from '../dict/props'\n\n defineOptions({\n name: 'QdUpload'\n })\n\n type Props = QdUploadProps<F, OR, OP, TOP, UR, UP, TUP, DR, DP, TDP>\n\n const props = withDefaults(defineProps<Props>(), qdUploadProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:files': [Props['files']]\n }>()\n const { modelValue, files: fileList } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const reModelValue = computed({\n get: () => {\n const { convStr } = reProps.value\n const value = modelValue.value\n if (isEmpty(value)) return []\n if (typeof value === 'string') {\n return value.split((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n }\n\n return value\n },\n set: (val) => {\n const { convStr } = reProps.value\n if (convStr) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n return\n }\n\n modelValue.value = val\n }\n })\n\n const formAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE)\n const { t } = useConfig('upload')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const { msgError, msgWarning } = useModal()\n const uploadRef = useTemplateRef<UploadInstanceFunctions>('upload')\n const { timer: uploadTimer, clearTimer: clearUploadTimer } = useTimer('interval')\n\n const delList = ref<(string | number)[]>([])\n\n const popupFileList = computed(() => [...fileList.value])\n\n const globalUploadProps = inject(PROVIDE_UPLOAD)\n const reProps = computed(() => {\n const {\n modelValue,\n files,\n convStr,\n valueMode,\n theme,\n sizeLimit,\n accept,\n multiple,\n disabled,\n beforeUpload,\n onValidate,\n formatResponse,\n onSuccess,\n onRemove,\n\n listOssByIds,\n listOssByUrls,\n del,\n\n ...uploadOptions\n } = props\n const reSizeLimit = (isEmpty(sizeLimit) ? undefined : easyCopy(qdUploadSizeLimit)) as\n | SizeLimitObj\n | undefined\n if (reSizeLimit) {\n if (typeof sizeLimit === 'number') {\n reSizeLimit.size = sizeLimit\n reSizeLimit.message = t('sizeLimitMessage')\n } else {\n Object.assign(reSizeLimit, { message: t('sizeLimitMessage') }, sizeLimit)\n }\n }\n\n const acceptStr = (\n accept ? accept : theme.includes('image') ? acceptMap.image : acceptMap.default\n ).join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (accept && !isTypeByName(file.name, accept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${accept} ${t('fileFormatNotSupportedMessage')[1]}`\n )\n return false\n }\n\n return true\n }\n\n const reOnValidate: typeof onValidate = (context) => {\n if (onValidate) {\n onValidate(context)\n return\n }\n\n switch (context.type) {\n case 'FILES_OVER_LENGTH_LIMIT':\n msgWarning(`${t('maxUploadMessage')[0]}${props.max}${t('maxUploadMessage')[1]}`)\n break\n case 'FILTER_FILE_SAME_NAME':\n msgWarning(t('sameNameMessage'))\n break\n case 'FILE_OVER_SIZE_LIMIT':\n msgWarning(`${context.files.map((t) => t.name).join(',')} ${t('fileSizeExceedsLimit')}`)\n break\n }\n }\n\n const reFormatResponse: typeof formatResponse = (res, context) => {\n if (formatResponse) return formatResponse(res, context)\n\n if (res.code === 200) {\n const { url, ossId, fileName, uploadTime } = res.data || {}\n return {\n success: true,\n url,\n name: fileName,\n ossId,\n uploadTime: uploadTime || dayjs().format('YYYY-MM-DD HH:mm:ss')\n }\n }\n\n return { status: 'fail', error: res.message || res.msg || t('fileUploadFailed') }\n }\n\n const reOnSuccess: typeof onSuccess = (context) => {\n onSuccess?.(context)\n updateModelValue(fileList.value)\n }\n\n const reOnRemove: typeof onRemove = (context) => {\n onRemove?.(context)\n const { ossId } = context.file?.response || {}\n\n if (ossId) {\n if (props.autoUpload) to(handleDel(ossId))\n else addDel(ossId)\n }\n\n updateModelValue(fileList.value)\n }\n\n const handlePopupRemove: typeof onRemove = (context) => {\n reOnRemove(context)\n if (isEmpty(context.index)) return\n\n fileList.value.splice(context.index, 1)\n }\n\n const reUploadOptions = {\n theme: ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(theme)\n ? theme\n : 'custom',\n sizeLimit: reSizeLimit,\n accept: acceptStr,\n multiple: multiple ?? props.max !== 1,\n disabled: disabled ?? (tdDisabled.value || tdReadonly.value),\n beforeUpload: reBeforeUpload,\n onValidate: reOnValidate,\n formatResponse: reFormatResponse,\n onSuccess: reOnSuccess,\n onRemove: reOnRemove,\n ...uploadOptions\n } as TdUploadProps\n\n if (globalUploadProps) {\n Object.entries(globalUploadProps).forEach(([key, value]) => {\n if (isEmpty(value)) return\n ;(reUploadOptions as Record<string, unknown>)[key] = value\n })\n }\n\n return {\n theme,\n convStr,\n valueMode,\n accept,\n handlePopupRemove,\n listOssByIds: {\n ...globalUploadProps?.listOssByIds,\n ...listOssByIds\n } as Props['listOssByIds'],\n listOssByUrls: {\n ...globalUploadProps?.listOssByUrls,\n ...listOssByUrls\n } as Props['listOssByUrls'],\n del: { ...globalUploadProps?.del, ...del } as Props['del'],\n uploadOptions: reUploadOptions,\n models: {\n modelValue,\n files\n }\n }\n })\n\n const expose = {} as QdUploadInstanceFunctions\n\n const uploadFiles: QdUploadInstanceFunctions['uploadFiles'] = (options) => {\n uploadRef.value?.uploadFiles(options?.files)\n\n return new Promise((resolve, reject) => {\n uploadTimer.value = setInterval(() => {\n const isFinished = fileList.value.every((item) => item.status !== 'progress')\n if (!isFinished) return\n\n clearUploadTimer()\n updateModelValue(fileList.value)\n\n const errorList = fileList.value.filter((item) => item.status === 'fail')\n if (errorList.length) {\n const msg = `${errorList.map((item) => item.name).join(',')} ${t('fileUploadFailed')}`\n if (options?.showErrorMessage !== false) {\n msgError(msg)\n }\n reject(new Error(msg))\n return\n }\n\n resolve(fileList.value)\n }, 100)\n })\n }\n\n function updateModelValue(files: UploadFile[]) {\n const tempModelValue: typeof reModelValue.value = []\n files.forEach((item) => {\n if (item.status !== 'success') return\n tempModelValue.push(item.response![reProps.value.valueMode])\n })\n reModelValue.value = tempModelValue\n }\n\n async function handleDel(\n ossId: string | number | (string | number)[],\n showErrorMessage?: boolean\n ) {\n const { del } = reProps.value\n if (!del) return\n\n const { service, transformParams, transformRes } = del\n\n const currentParams = ossId\n let tParams: TDP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as DP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TDP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadDeleteResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadDeleteResult\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message && showErrorMessage !== false) msgError(message)\n throw new Error(message)\n }\n }\n\n async function addDel(ossId: string | number) {\n delList.value.push(ossId)\n }\n\n async function getOssByIds(ossId: string | number | (string | number)[]) {\n const { listOssByIds } = reProps.value\n if (!listOssByIds) return []\n\n const { service, transformParams, transformRes } = listOssByIds\n\n const currentParams = ossId\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TOP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function getOssByUrls(ossId: string | string[]) {\n const { listOssByUrls } = reProps.value\n if (!listOssByUrls) return []\n\n const { service, transformParams, transformRes } = listOssByUrls\n\n const currentParams = ossId\n let tParams: TUP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as UP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TUP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function uploadBeforeFormSubmit() {\n const [err] = await to(uploadFiles({ showErrorMessage: false }))\n if (err) return { success: false, message: err.message }\n return true\n }\n\n async function delBeforeFormSubmit() {\n if (!delList.value.length) return true\n\n const [err] = await to(handleDel(delList.value, false))\n if (err) return true\n return true\n }\n\n formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit)\n formAddBeforeSubmitQueue?.(delBeforeFormSubmit)\n\n watch(\n reModelValue,\n async (newVal, oldVal) => {\n if (!newVal.length || checkSameObject(newVal, oldVal) || fileList.value.length) return\n\n const { valueMode } = reProps.value\n const apiFn = valueMode === 'url' ? getOssByUrls : getOssByIds\n const [err, res] = await to(apiFn(newVal))\n if (err) return\n\n fileList.value = res.map((item) => {\n const { url, ossId, originalName, size, createTime } = item\n\n return {\n url,\n uid: ossId,\n name: originalName,\n size,\n uploadTime: createTime,\n response: { status: 'success', url, ossId, name: originalName, uploadTime: createTime },\n status: 'success'\n }\n }) as unknown as F[]\n },\n { deep: true, immediate: true }\n )\n\n onMounted(() => {\n Object.assign(expose, uploadRef.value, { uploadFiles })\n })\n</script>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","TTooltip","_renderSlot","_hoisted_2","_toDisplayString","_Fragment","_createBlock","_createSlots","$slots","_withCtx","_normalizeProps","_guardReactiveProps","objectToString","isPlainObject","isArray","get","keys","baseMerge","merge","index","isFunction","isObject","commonjsGlobal","module","exports","root","h","tag","h2","TConfigProvider","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","symbolTag","symbolProto","funcTag","genTag","funcProto","funcToString","MAX_SAFE_INTEGER","argsTag","propertyIsEnumerable","freeExports","freeModule","moduleExports","Buffer","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","HASH_UNDEFINED","Map","Promise","Set","Uint8Array","CLONE_DEEP_FLAG","key","vShow","componentProps","_resolveDynamicComponent","_mergeProps","_renderList","QdConfigRenderer","hasPermi","hasRole","auth.hasPermiOr","auth.hasRoleOr","o","dayjs_min$1","t","e","n","m","r","i","s","u","a","p","S","O","M","f","l","$","y","v","g","D","d","c","dayjs_minExports","_","zhCN","props","__props","emit","__emit","data","selectedRowKeys","activeRowKeys","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","useConfig","tableRef","useTemplateRef","treeLoadIds","ref","scrollRecord","top","left","reProps","computed","service","manual","transformParams","transformRes","pagination","cacheKey","cacheTime","pollingInterval","onBefore","onAfter","onSuccess","onError","loading","selectType","columns","selectOnRowClick","expandOnRowClick","tree","onScroll","tableOptions","reTableOptions","reTransformRes","reTree","easyCopy","qdServiceTableTreeConfig","lazyLoad","res","temp","trErr","trRes","suspectedWrapperPromise","records","forEach","item","children","treeExpandAndFoldIcon","row","type","value","includes","id","_createVNode2","LoadingIcon","color","__qdTreeLoaded","AddRectangleIcon","cursor","MinusRectangleIcon","onExpandedTreeNodesChange","currentExpandedTreeNodes","options","rowState","level","maxLevel","rowKey","qdServiceTableProps","isEmpty","push","setData","currentParams","tParams","tpErr","tpRes","serviceErr","serviceRes","removeTreeLoadId","total","length","childrenKey","appendTo","map","reColumns","selectIdx","findIndex","defaultSelect","colKey","align","width","unshift","reSelectOnRowClick","expandTreeNodeOnClick","reOnScroll","params","target","scrollTop","scrollLeft","externalLoad","serviceOptions","models","firstLoad","manualTriggerLoad","current","pageSize","changeCurrent","changePageSize","changePagination","runAsync","run","cancel","refresh","refreshAsync","useServicePagination","list","tableLoad","rePagination","undefined","onCurrentChange","onPageSizeChange","splice","resumeScrollRecord","el","$el","scrollEl","querySelector","scrollTo","expose","watch","visible","col","filter","Boolean","immediate","onMounted","Object","assign","onActivated","__expose","class","$event","empty","TEmpty","title","name","fn","slotProps","_ctx","core","_withDirectives","modelValue","inputValue","autofocus","TLoading","TFormItem","QdDialog","TButton","QdCard","vHasPermi","hasPermiDirective","searchData","msgError","msgSuccess","alertWarning","confirm","useModal","treeIsExpand","dialogFormMap","reactive","inSearchData","search","form","detail","add","actions","edit","view","del","rowActions","serviceTableOptions","mergedTransformParams","merged","reAdd","mergeAction","crudMode","permiID","content","icon","AddIcon","reActions","buildActions","reEdit","theme","hover","reView","reDel","reRowActions","reSelectType","batchDel","variant","operationLength","operationIdx","defaultOperation","fixed","searchOptions","formOptions","detailOptions","searchVisible","searchRef","searchMode","handleSearch","handleResetSearch","reset","submit","triggerSearch","validateResult","handleRefresh","toggleSearchVisible","toggleTreeExpandAll","foldAll","expandAll","openColumnController","crudForm","defaultOptions","currentOptions","mergeOptions","permi","buildActionPermi","buildActionForm","getConfigRendererCtx","self","other","tableData","actionIsCRU","action","permiPrefix","IsCRU","cloneDeep","readonly","onSubmit","context","uid","formData","success","message","wrapper","header","buildActionOnClick","originalParams","onClick","delHasChild","qdCrudTableProps","some","getData","child","body","generateRandomString","shallowRef","nextTick","triggerRef","err","to","getDetail","buildActionDisabled","disabled","items","QdCrudSearch","footer","TSpace","size","_createElementVNode","config","shape","SearchIcon","RefreshIcon","UnfoldLessIcon","UnfoldMoreIcon","columnController","hideTriggerButton","SettingIcon","operation","separator","TDivider","layout","is","extractSlotsWithPrefix","filterName","originalName","dialogForm","QdDialogForm","serviceListOptions","listRef","_hoisted_3","default","popupVisible","dictType","_normalizeClass","_createTextVNode","TTag","this","TPopup","TUpload","TBadge"],"mappings":"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ACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AACD,YAAI,MAAM,UAAU,OAAO;AAAA,UACzB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AACD,YAAI,MAAM,UAAU,OAAO;AAAA,UACzB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AACD,YAAI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ACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAEF;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAEF;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UAAA;AAAA,UAEF;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,Y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","x_google_ignoreList":[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,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,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,147,148,155,156,157,158,187]}
|