@nhtio/lucid-resourceful-vue-components 0.1.0-master-dc6af70b → 1.20251107.0
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/{VBtn-CEYzcx0y.mjs → VBtn-C_58hP1L.mjs} +8 -8
- package/{VBtn-CEYzcx0y.mjs.map → VBtn-C_58hP1L.mjs.map} +1 -1
- package/VBtn.css +1 -0
- package/{VDatePicker-BHcvHHhM.mjs → VDatePicker-CKxKmuCC.mjs} +62 -62
- package/{VDatePicker-BHcvHHhM.mjs.map → VDatePicker-CKxKmuCC.mjs.map} +1 -1
- package/VDatePicker.css +1 -0
- package/{VEmptyState-CkYtN0q5.mjs → VEmptyState-CjqRy_Xt.mjs} +51 -51
- package/{VEmptyState-CkYtN0q5.mjs.map → VEmptyState-CjqRy_Xt.mjs.map} +1 -1
- package/VEmptyState.css +1 -0
- package/{VHover-Bj6QrQff.mjs → VHover-D-sydp3P.mjs} +3 -3
- package/{VHover-Bj6QrQff.mjs.map → VHover-D-sydp3P.mjs.map} +1 -1
- package/{VListItem-BnxAmKd_.mjs → VListItem-DNNkp2dc.mjs} +37 -37
- package/{VListItem-BnxAmKd_.mjs.map → VListItem-DNNkp2dc.mjs.map} +1 -1
- package/VListItem.css +1 -0
- package/{VMenu-BSB7YSpb.mjs → VMenu-oGwvgLV1.mjs} +4 -4
- package/{VMenu-BSB7YSpb.mjs.map → VMenu-oGwvgLV1.mjs.map} +1 -1
- package/VMenu.css +1 -0
- package/{VPicker-DMOVvCIE.mjs → VPicker-EfRj-X6U.mjs} +5 -5
- package/{VPicker-DMOVvCIE.mjs.map → VPicker-EfRj-X6U.mjs.map} +1 -1
- package/VPicker.css +1 -0
- package/{VRadioGroup-ByydeX8x.mjs → VRadioGroup-CDf6CGwX.mjs} +15 -15
- package/{VRadioGroup-ByydeX8x.mjs.map → VRadioGroup-CDf6CGwX.mjs.map} +1 -1
- package/VRadioGroup.css +1 -0
- package/{VRow-Dmn82Xaa.mjs → VRow-Da2fdUPu.mjs} +7 -7
- package/{VRow-Dmn82Xaa.mjs.map → VRow-Da2fdUPu.mjs.map} +1 -1
- package/{VSheet-B9ALb0PQ.mjs → VSheet-DdygPJlo.mjs} +3 -3
- package/{VSheet-B9ALb0PQ.mjs.map → VSheet-DdygPJlo.mjs.map} +1 -1
- package/VSheet.css +1 -0
- package/{actions-BEmdy8bu.mjs → actions-5gxlWcWt.mjs} +15 -15
- package/{actions-BEmdy8bu.mjs.map → actions-5gxlWcWt.mjs.map} +1 -1
- package/actions.css +1 -0
- package/{alert-DftADRGk.mjs → alert-C6Dxm9jn.mjs} +13 -13
- package/{alert-DftADRGk.mjs.map → alert-C6Dxm9jn.mjs.map} +1 -1
- package/{bigint-DiC37zMo.mjs → bigint-CqXe_geE.mjs} +6 -6
- package/{bigint-DiC37zMo.mjs.map → bigint-CqXe_geE.mjs.map} +1 -1
- package/{boolean-DZDryWHA.mjs → boolean-BaevWx3k.mjs} +44 -44
- package/{boolean-DZDryWHA.mjs.map → boolean-BaevWx3k.mjs.map} +1 -1
- package/boolean.css +1 -0
- package/{clipboard--JAZokR3.mjs → clipboard-CGd9vMCV.mjs} +49 -49
- package/{clipboard--JAZokR3.mjs.map → clipboard-CGd9vMCV.mjs.map} +1 -1
- package/clipboard.css +1 -0
- package/{colorUtils-I1lKouL3.mjs → colorUtils-BdpqbLZS.mjs} +3 -3
- package/{colorUtils-I1lKouL3.mjs.map → colorUtils-BdpqbLZS.mjs.map} +1 -1
- package/{common-BDwb9uGU.mjs → common-DrsZRUoj.mjs} +14 -14
- package/{common-BDwb9uGU.mjs.map → common-DrsZRUoj.mjs.map} +1 -1
- package/common.css +1 -0
- package/{component-C-qp70Rp.mjs → component-DhEJuSE6.mjs} +2 -2
- package/{component-C-qp70Rp.mjs.map → component-DhEJuSE6.mjs.map} +1 -1
- package/components/autorefresh_controller.mjs +1 -1
- package/components/control_button.mjs +1 -1
- package/components/control_button_bar.mjs +2 -2
- package/components/control_menu.mjs +1 -1
- package/components/custom_field.mjs +1 -1
- package/components/exporter.mjs +1 -1
- package/components/fields/bigint.mjs +1 -1
- package/components/fields/boolean.mjs +1 -1
- package/components/fields/date.mjs +1 -1
- package/components/fields/date_time.mjs +1 -1
- package/components/fields/enum.mjs +1 -1
- package/components/fields/integer.mjs +1 -1
- package/components/fields/number.mjs +1 -1
- package/components/fields/string.mjs +1 -1
- package/components/fields/unsigned_integer.mjs +1 -1
- package/components/fields.mjs +9 -9
- package/components/form_with_validation.mjs +1 -1
- package/components/resourceful_alerter.mjs +1 -1
- package/components/resourceful_index.mjs +1 -1
- package/components/resourceful_record.mjs +2 -2
- package/components/resourceful_record_default_form.mjs +1 -1
- package/components/resourceful_record_form.mjs +1 -1
- package/components/sortable.mjs +1 -1
- package/components/svg_icon.mjs +1 -1
- package/components/timezone_picker.mjs +1 -1
- package/components.mjs +23 -23
- package/composables.mjs +11 -11
- package/{console-CAez8ceh.mjs → console-Dgoi3FwV.mjs} +2 -2
- package/{console-CAez8ceh.mjs.map → console-Dgoi3FwV.mjs.map} +1 -1
- package/{custom-Tm6_792A.mjs → custom-CXFDPB_N.mjs} +21 -21
- package/{custom-Tm6_792A.mjs.map → custom-CXFDPB_N.mjs.map} +1 -1
- package/{date-CxaBVvlO.mjs → date-BXNqToRH.mjs} +21 -21
- package/{date-CxaBVvlO.mjs.map → date-BXNqToRH.mjs.map} +1 -1
- package/{date_time-DhABUkGT.mjs → date_time-DuRO8DS4.mjs} +348 -348
- package/{date_time-DhABUkGT.mjs.map → date_time-DuRO8DS4.mjs.map} +1 -1
- package/date_time.css +1 -0
- package/{display-DPktlWOz.mjs → display-BL-pquAI.mjs} +10 -10
- package/{display-DPktlWOz.mjs.map → display-BL-pquAI.mjs.map} +1 -1
- package/{display-DazBkrbZ.mjs → display-DCHGPqrW.mjs} +2 -2
- package/{display-DazBkrbZ.mjs.map → display-DCHGPqrW.mjs.map} +1 -1
- package/{display-BdjbLG1_.mjs → display-TF26EjNQ.mjs} +16 -16
- package/{display-BdjbLG1_.mjs.map → display-TF26EjNQ.mjs.map} +1 -1
- package/display.css +1 -0
- package/display2.css +1 -0
- package/{elevation-DFBVIqom.mjs → elevation-j7bb-vGU.mjs} +39 -39
- package/{elevation-DFBVIqom.mjs.map → elevation-j7bb-vGU.mjs.map} +1 -1
- package/elevation.css +1 -0
- package/{enum-KB4xPkOL.mjs → enum-CRgh6TfR.mjs} +22 -22
- package/{enum-KB4xPkOL.mjs.map → enum-CRgh6TfR.mjs.map} +1 -1
- package/factories.mjs +1 -1
- package/{field_composer-CLJuJevf.mjs → field_composer-CjKCvP50.mjs} +3 -3
- package/{field_composer-CLJuJevf.mjs.map → field_composer-CjKCvP50.mjs.map} +1 -1
- package/{form-9YRVcrxM.mjs → form-CFjPqvRf.mjs} +45 -45
- package/{form-9YRVcrxM.mjs.map → form-CFjPqvRf.mjs.map} +1 -1
- package/{guards-BrpRx6ly.mjs → guards-Cby4QwzY.mjs} +2 -2
- package/{guards-BrpRx6ly.mjs.map → guards-Cby4QwzY.mjs.map} +1 -1
- package/guards.mjs +4 -4
- package/helpers.mjs +6 -6
- package/{index-UxsEIZVi.mjs → index-B8OnsqN1.mjs} +10 -10
- package/{index-UxsEIZVi.mjs.map → index-B8OnsqN1.mjs.map} +1 -1
- package/{index-CWwCXXNl.mjs → index-C-PCfO1S.mjs} +2 -2
- package/{index-CWwCXXNl.mjs.map → index-C-PCfO1S.mjs.map} +1 -1
- package/{index-BkjiQEyJ.mjs → index-CZg-HOo9.mjs} +12 -12
- package/{index-BkjiQEyJ.mjs.map → index-CZg-HOo9.mjs.map} +1 -1
- package/{index-BaOM0Cyz.mjs → index-ChVCZ8iE.mjs} +21 -21
- package/{index-BaOM0Cyz.mjs.map → index-ChVCZ8iE.mjs.map} +1 -1
- package/{index-DDobJ49b.mjs → index-Cou5qTHe.mjs} +13 -13
- package/{index-DDobJ49b.mjs.map → index-Cou5qTHe.mjs.map} +1 -1
- package/{index-DBXOwXpe.mjs → index-DM8E6faO.mjs} +8 -8
- package/{index-DBXOwXpe.mjs.map → index-DM8E6faO.mjs.map} +1 -1
- package/{index-DwOjHbRP.mjs → index-DSLt7-cJ.mjs} +44 -44
- package/{index-DwOjHbRP.mjs.map → index-DSLt7-cJ.mjs.map} +1 -1
- package/{index-Bs4A8qUO.mjs → index-VpcXNOpn.mjs} +2 -2
- package/{index-Bs4A8qUO.mjs.map → index-VpcXNOpn.mjs.map} +1 -1
- package/{index-BsazeUn6.mjs → index-fiZltUBs.mjs} +3 -3
- package/{index-BsazeUn6.mjs.map → index-fiZltUBs.mjs.map} +1 -1
- package/index.css +1 -0
- package/index.mjs +47 -47
- package/{integer-uzh0nwpb.mjs → integer-Dy0xpFif.mjs} +5 -5
- package/{integer-uzh0nwpb.mjs.map → integer-Dy0xpFif.mjs.map} +1 -1
- package/{mdi-C9DbASEx.mjs → mdi-BQSh-ess.mjs} +19 -19
- package/{mdi-C9DbASEx.mjs.map → mdi-BQSh-ess.mjs.map} +1 -1
- package/mdi.css +1 -0
- package/{number-CfHLDQFY.mjs → number-DWCew87L.mjs} +86 -86
- package/{number-CfHLDQFY.mjs.map → number-DWCew87L.mjs.map} +1 -1
- package/number.css +1 -0
- package/package.json +45 -45
- package/{position-CPuNp03H.mjs → position-B9VPkbhU.mjs} +2 -2
- package/{position-CPuNp03H.mjs.map → position-B9VPkbhU.mjs.map} +1 -1
- package/{props-KPFuptNy.mjs → props-Cjpc9pre.mjs} +8 -8
- package/{props-KPFuptNy.mjs.map → props-Cjpc9pre.mjs.map} +1 -1
- package/{props-Cq9daNwa.mjs → props-DQlQ6VDP.mjs} +6 -6
- package/{props-Cq9daNwa.mjs.map → props-DQlQ6VDP.mjs.map} +1 -1
- package/{renderers-COT3aAu3.mjs → renderers-hznWrh2D.mjs} +13 -13
- package/{renderers-COT3aAu3.mjs.map → renderers-hznWrh2D.mjs.map} +1 -1
- package/{string-DvwPf_Ob.mjs → string-BTd_Gwx-.mjs} +181 -181
- package/{string-DvwPf_Ob.mjs.map → string-BTd_Gwx-.mjs.map} +1 -1
- package/string.css +1 -0
- package/{unsigned_integer-C9nrNAn_.mjs → unsigned_integer-CfxxFKrO.mjs} +4 -4
- package/{unsigned_integer-C9nrNAn_.mjs.map → unsigned_integer-CfxxFKrO.mjs.map} +1 -1
- package/useRender-CfNJA_8a.mjs +9 -0
- package/{useRender-Dpj9Jrbr.mjs.map → useRender-CfNJA_8a.mjs.map} +1 -1
- package/{utils-DxV2ZNaE.mjs → utils-D3ZGaTyv.mjs} +50 -50
- package/{utils-DxV2ZNaE.mjs.map → utils-D3ZGaTyv.mjs.map} +1 -1
- package/{validation-CZ6xx4aX.mjs → validation-BobMyGeq.mjs} +4 -4
- package/{validation-CZ6xx4aX.mjs.map → validation-BobMyGeq.mjs.map} +1 -1
- package/useRender-Dpj9Jrbr.mjs +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-DxV2ZNaE.mjs","sources":["../src/private/common/guards.ts","../node_modules/.pnpm/case-anything@3.1.2/node_modules/case-anything/dist/utils.js","../node_modules/.pnpm/case-anything@3.1.2/node_modules/case-anything/dist/core.js","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/propsFactory.mjs","../src/private/common/factories.ts","../node_modules/.pnpm/vite-plugin-node-polyfills@0.24.0_rollup@4.52.5_vite@7.2.2_@types+node@22.19.0_jiti@2.6_7c9c32b39fd1084047db114c6237ab2d/node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/vue.runtime.esm-bundler-BRffRTPw.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/helpers.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/getCurrentInstance.mjs","../src/private/common/utils.ts"],"sourcesContent":["/**\n * Type guard to check if a value is a plain object (not null, not array)\n * @param value - The value to check\n * @returns True if the value is a plain object, false otherwise\n */\nexport const isObject = (value: unknown): value is { [key: string]: unknown } => {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n","// Latin-1 Supplement\n// upper case ranges\n// [À-ÖØ-ß]\n// lower case ranges\n// [à-öø-ÿ]\nexport const magicSplit = /^[a-zà-öø-ÿа-я]+|[A-ZÀ-ÖØ-ßА-Я][a-zà-öø-ÿа-я]+|[a-zà-öø-ÿа-я]+|[0-9]+|[A-ZÀ-ÖØ-ßА-Я]+(?![a-zà-öø-ÿа-я])/g;\nexport const spaceSplit = /\\S+/g;\n/**\n * A string.matchAll function that will return an array of \"string parts\" and the indexes at which it split each part\n */\nexport function getPartsAndIndexes(string, splitRegex) {\n const result = { parts: [], prefixes: [] };\n const matches = string.matchAll(splitRegex);\n let lastWordEndIndex = 0;\n for (const match of matches) {\n if (typeof match.index !== 'number')\n continue;\n const word = match[0];\n result.parts.push(word);\n const prefix = string.slice(lastWordEndIndex, match.index).trim();\n result.prefixes.push(prefix);\n lastWordEndIndex = match.index + word.length;\n }\n const tail = string.slice(lastWordEndIndex).trim();\n if (tail) {\n result.parts.push('');\n result.prefixes.push(tail);\n }\n return result;\n}\n/**\n * A function that splits a string on words and returns an array of words.\n * - It can prefix each word with a given character\n * - It can strip or keep special characters, this affects the logic for adding a prefix as well\n */\nexport function splitAndPrefix(string, options) {\n const { keepSpecialCharacters = false, keep, prefix = '' } = options || {};\n const normalString = string.trim().normalize('NFC');\n const hasSpaces = normalString.includes(' ');\n const split = hasSpaces ? spaceSplit : magicSplit;\n const partsAndIndexes = getPartsAndIndexes(normalString, split);\n return partsAndIndexes.parts\n .map((_part, i) => {\n let foundPrefix = partsAndIndexes.prefixes[i] || '';\n let part = _part;\n if (keepSpecialCharacters === false) {\n if (keep) {\n part = part\n .normalize('NFD')\n .replace(new RegExp(`[^a-zA-ZØßø0-9${keep.join('')}]`, 'g'), '');\n }\n if (!keep) {\n part = part.normalize('NFD').replace(/[^a-zA-ZØßø0-9]/g, '');\n foundPrefix = '';\n }\n }\n if (keep && foundPrefix) {\n foundPrefix = foundPrefix.replace(new RegExp(`[^${keep.join('')}]`, 'g'), '');\n }\n // the first word doesn't need a prefix, so only return the found prefix\n if (i === 0) {\n // console.log(`foundPrefix → `, foundPrefix)\n return foundPrefix + part;\n }\n if (!foundPrefix && !part)\n return '';\n if (!hasSpaces) {\n // return the found prefix OR fall back to a given prefix\n return (foundPrefix || prefix) + part;\n }\n // space based sentence was split on spaces, so only return found prefixes\n if (!foundPrefix && prefix.match(/\\s/)) {\n // in this case we have no more found prefix, it was trimmed, but we're looking to add a space\n // so let's return that space\n return ' ' + part;\n }\n return (foundPrefix || prefix) + part;\n })\n .filter(Boolean);\n}\n/**\n * Capitalises a single word\n * @returns the word with the first character in uppercase and the rest in lowercase\n */\nexport function capitaliseWord(string) {\n const match = string.matchAll(magicSplit).next().value;\n const firstLetterIndex = match ? match.index : 0;\n return (string.slice(0, firstLetterIndex + 1).toUpperCase() +\n string.slice(firstLetterIndex + 1).toLowerCase());\n}\n","import { capitaliseWord, magicSplit, splitAndPrefix } from './utils.js';\n/**\n * # 🐪 camelCase\n * converts a string to camelCase\n * - first lowercase then all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * camelCase('$catDog') === 'catDog'\n * @example\n * camelCase('$catDog', { keepSpecialCharacters: true }) === '$catDog'\n */\nexport function camelCase(string, options) {\n return splitAndPrefix(string, options).reduce((result, word, index) => {\n return index === 0 || !(word[0] || '').match(magicSplit)\n ? result + word.toLowerCase()\n : result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🐫 PascalCase\n * converts a string to PascalCase (also called UpperCamelCase)\n * - all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * pascalCase('$catDog') === 'CatDog'\n * @example\n * pascalCase('$catDog', { keepSpecialCharacters: true }) === '$CatDog'\n */\nexport function pascalCase(string, options) {\n return splitAndPrefix(string, options).reduce((result, word) => {\n return result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🐫 UpperCamelCase\n * converts a string to UpperCamelCase (also called PascalCase)\n * - all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * upperCamelCase('$catDog') === 'CatDog'\n * @example\n * upperCamelCase('$catDog', { keepSpecialCharacters: true }) === '$CatDog'\n */\nexport const upperCamelCase = pascalCase;\n/**\n * # 🥙 kebab-case\n * converts a string to kebab-case\n * - hyphenated lowercase\n * - *strips away* special characters by default\n *\n * @example\n * kebabCase('$catDog') === 'cat-dog'\n * @example\n * kebabCase('$catDog', { keepSpecialCharacters: true }) === '$cat-dog'\n */\nexport function kebabCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 🐍 snake_case\n * converts a string to snake_case\n * - underscored lowercase\n * - *strips away* special characters by default\n *\n * @example\n * snakeCase('$catDog') === 'cat_dog'\n * @example\n * snakeCase('$catDog', { keepSpecialCharacters: true }) === '$cat_dog'\n */\nexport function snakeCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 📣 CONSTANT_CASE\n * converts a string to CONSTANT_CASE\n * - underscored uppercase\n * - *strips away* special characters by default\n *\n * @example\n * constantCase('$catDog') === 'CAT_DOG'\n * @example\n * constantCase('$catDog', { keepSpecialCharacters: true }) === '$CAT_DOG'\n */\nexport function constantCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .join('')\n .toUpperCase();\n}\n/**\n * # 🚂 Train-Case\n * converts strings to Train-Case\n * - hyphenated & capitalised\n * - *strips away* special characters by default\n *\n * @example\n * trainCase('$catDog') === 'Cat-Dog'\n * @example\n * trainCase('$catDog', { keepSpecialCharacters: true }) === '$Cat-Dog'\n */\nexport function trainCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .map((word) => capitaliseWord(word))\n .join('');\n}\n/**\n * # 🕊 Ada_Case\n * converts a string to Ada_Case\n * - underscored & capitalised\n * - *strips away* special characters by default\n *\n * @example\n * adaCase('$catDog') === 'Cat_Dog'\n * @example\n * adaCase('$catDog', { keepSpecialCharacters: true }) === '$Cat_Dog'\n */\nexport function adaCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .map((part) => capitaliseWord(part))\n .join('');\n}\n/**\n * # 👔 COBOL-CASE\n * converts a string to COBOL-CASE\n * - hyphenated uppercase\n * - *strips away* special characters by default\n *\n * @example\n * cobolCase('$catDog') === 'CAT-DOG'\n * @example\n * cobolCase('$catDog', { keepSpecialCharacters: true }) === '$CAT-DOG'\n */\nexport function cobolCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .join('')\n .toUpperCase();\n}\n/**\n * # 📍 Dot.notation\n * converts a string to dot.notation\n * - adds dots, does not change casing\n * - *strips away* special characters by default\n *\n * @example\n * dotNotation('$catDog') === 'cat.Dog'\n * @example\n * dotNotation('$catDog', { keepSpecialCharacters: true }) === '$cat.Dog'\n */\nexport function dotNotation(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '.' }).join('');\n}\n/**\n * # 📂 Path/case\n * converts a string to path/case\n * - adds slashes, does not change casing\n * - *keeps* special characters by default\n *\n * @example\n * pathCase('$catDog') === '$cat/Dog'\n * @example\n * pathCase('$catDog', { keepSpecialCharacters: false }) === 'cat/Dog'\n */\nexport function pathCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, options).reduce((result, word, i) => {\n const prefix = i === 0 || word[0] === '/' ? '' : '/';\n return result + prefix + word;\n }, '');\n}\n/**\n * # 🛰 Space case\n * converts a string to space case\n * - adds spaces, does not change casing\n * - *keeps* special characters by default\n *\n * @example\n * spaceCase('$catDog') === '$cat Dog'\n * @example\n * spaceCase('$catDog', { keepSpecialCharacters: false }) === 'cat Dog'\n */\nexport function spaceCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' }).join('');\n}\n/**\n * # 🏛 Capital Case\n * converts a string to Capital Case\n * - capitalizes words and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * capitalCase('$catDog') === '$Cat Dog'\n * @example\n * capitalCase('$catDog', { keepSpecialCharacters: false }) === 'Cat Dog'\n *\n * ⟪ if you do not want to add spaces, use `pascalCase()` ⟫\n */\nexport function capitalCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' }).reduce((result, word) => {\n return result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🔡 lower case\n * converts a string to lower case\n * - makes words lowercase and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * lowerCase('$catDog') === '$cat dog'\n * @example\n * lowerCase('$catDog', { keepSpecialCharacters: false }) === 'cat dog'\n *\n * ⟪ if you do not want to add spaces, use the native JS `toLowerCase()` ⟫\n */\nexport function lowerCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 🔠 UPPER CASE\n * converts a string to UPPER CASE\n * - makes words upper case and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * upperCase('$catDog') === '$CAT DOG'\n * @example\n * upperCase('$catDog', { keepSpecialCharacters: false }) === 'CAT DOG'\n *\n * ⟪ if you do not want to add spaces, use the native JS `toUpperCase()` ⟫\n */\nexport function upperCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' })\n .join('')\n .toUpperCase();\n}\n","function propsFactory(props, source) {\n return (defaults) => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === \"object\" && props[prop] != null && !Array.isArray(props[prop]);\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] };\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop]\n };\n } else {\n obj[prop] = definition;\n }\n if (source && !obj[prop].source) {\n obj[prop].source = source;\n }\n return obj;\n }, {});\n };\n}\nexport {\n propsFactory\n};\n//# sourceMappingURL=propsFactory.mjs.map\n","/* eslint-disable vue/prefer-import-from-vue */\nimport { getDefaultsForPropFactory } from './utils'\nimport { camelCase, kebabCase } from 'case-anything'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport type { Merge } from 'type-fest'\nimport type { IfAny } from '@vue/shared'\nimport type { ExtractPublicDefaultPropTypes } from './utils'\nimport type { ComponentObjectPropsOptions, PropType, Prop, ExtractPublicPropTypes } from 'vue'\n/**\n * Interface for emit validator functions that return boolean values.\n * Used as input to the emitsFactory to define validation logic for Vue component emits.\n *\n * @example\n * ```typescript\n * const validators: EmitValidators = {\n * 'update:value': (newValue: string) => typeof newValue === 'string',\n * 'error': (error: Error) => error instanceof Error\n * }\n * ```\n */\ninterface EmitValidators {\n [key: string]: (...args: any[]) => boolean\n}\n\n/**\n * Mapped type that transforms emit validator functions to emit functions.\n * Converts functions that return `boolean` to functions that return `void`,\n * while preserving parameter types through conditional type inference.\n *\n * @template T - The emit validators object type\n *\n * @example\n * ```typescript\n * type Input = { save: (data: string) => boolean }\n * type Output = EmitFunctions<Input> // { save: (data: string) => void }\n * ```\n */\ntype EmitFunctions<T extends EmitValidators> = {\n [K in keyof T]: T[K] extends (...args: infer P) => boolean ? (...args: P) => void : never\n}\n\nexport type CastToEmitValidators<T extends EmitFunctions<EmitValidators>> = {\n [K in keyof T]: T[K] extends (...args: infer P) => void ? (...args: P) => boolean : never\n}\n\n/**\n * Type helper that generates emit handler prop types from emit validators.\n * Creates both camelCase and kebab-case variants for each emit.\n */\nexport type EmitHandlerProps<E extends EmitValidators> = {\n [K in keyof E as `on${Capitalize<string & K>}`]?: PropType<EmitFunctions<E>[K] | undefined>\n} & {\n [K in keyof E as K extends `${infer Prefix}:${infer Suffix}`\n ? `on${Capitalize<Prefix>}:${Suffix}`\n : never]?: PropType<EmitFunctions<E>[K] | undefined>\n}\n\ntype PartialKeys<T> = { [P in keyof T]?: unknown }\n\ntype InferPropType<T> = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n ? // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record<string, any>\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType<U>\n : InferPropType<U>\n : [T] extends [Prop<infer V, infer D>]\n ? unknown extends V\n ? IfAny<V, V, D>\n : V\n : T\n\ntype MergeTypeDefault<T, D, P = InferPropType<T>> = unknown extends D ? P : P | D\ntype MergeDefault<T, D, P = InferPropType<T>> = unknown extends D ? P : NonNullable<P> | D\n\ntype AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record<string, unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeTypeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n : {\n type: PropType<MergeTypeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n}\n\nexport type PropFactory<PropsOptions extends ComponentObjectPropsOptions> = <\n Defaults extends PartialKeys<PropsOptions> = {},\n>(\n defaults?: Defaults\n) => AppendDefault<PropsOptions, Defaults>\n\n/**\n * Factory function that converts emit validator functions to Vue-compatible emit functions.\n *\n * This utility solves the TypeScript integration challenge with Vue's emit system:\n * - Vue expects emit functions to return `void`\n * - Developers want validator functions that return `boolean` for validation logic\n * - This factory preserves runtime validation while providing correct TypeScript types\n *\n * @template T - The type of the validators object\n * @param validators - Object containing validator functions that return boolean\n * @returns The same object cast to have emit functions that return void\n *\n * @example\n * ```typescript\n * // Define validators with actual validation logic\n * const validators = {\n * 'update:modelValue': (value: string[]) => Array.isArray(value),\n * 'error': (error: unknown) => true, // Always allow error emissions\n * 'save': (data: SaveData) => data && typeof data.id === 'string'\n * }\n *\n * // Use in Vue component\n * export default defineComponent({\n * emits: emitsFactory(validators),\n * setup(props, { emit }) {\n * // emit functions are properly typed as (...args) => void\n * emit('update:modelValue', ['item1', 'item2'])\n * emit('error', new Error('Something went wrong'))\n * }\n * })\n * ```\n */\nexport const emitsFactory = <T extends EmitValidators>(validators: T): EmitFunctions<T> => {\n // Return the original validators but cast the type to emit functions\n return validators as unknown as EmitFunctions<T>\n}\n\nexport const getCamelAndMaybeKebabPropKeysFor = (key: string): { camel: string; kebab: string } => {\n const camelPropKey = key\n .split(':')\n .map((p, i) => (i === 0 ? camelCase(['on', p].join('_')) : camelCase(p)))\n .join(':')\n const maybeKebabPropKey = key\n .split(':')\n .map((p, i) => (i === 0 ? camelCase(['on', p].join('_')) : kebabCase(p)))\n .join(':')\n return { camel: camelPropKey, kebab: maybeKebabPropKey }\n}\n\n/**\n * Factory function that creates both props and emits for Vue components with automatic\n * emit handler prop generation.\n *\n * This utility automatically generates corresponding prop handlers for each emit event,\n * supporting both camelCase and kebab-case naming conventions to maximize template\n * syntax flexibility. For each emit, it creates props that allow users to bind handlers\n * using either `:onEventName` or `@event-name` syntax.\n *\n * The returned `makeProps` function includes full TypeScript support for both the original\n * props and the automatically generated emit handler props, ensuring type safety throughout\n * component development.\n *\n * @template P - The type of the component props object\n * @template E - The type of the emit validators object\n * @param props - Component props object that will be extended with emit handler props\n * @param emits - Object containing emit validator functions\n * @param source - Source identifier for the props factory (used for debugging/tooling)\n * @returns Object containing makeProps and emits functions\n * @returns makeProps - Props factory function that includes original props + emit handler props with full TypeScript support\n * @returns emits - Emit functions converted from validators with proper void return types\n *\n * @example\n * ```typescript\n * // Define your component props and emits\n * const componentProps = {\n * value: String,\n * disabled: Boolean\n * }\n *\n * const componentEmits = {\n * 'update:modelValue': (value: string) => typeof value === 'string',\n * 'item:selected': (item: Item) => item && typeof item.id === 'string'\n * }\n *\n * // Create factories\n * const { makeProps, emits } = propsAndEmitsFactory(\n * componentProps,\n * componentEmits,\n * 'MyComponent'\n * )\n *\n * // makeProps() returns props with full TypeScript intellisense for:\n * // - Original props: value, disabled\n * // - Generated emit handlers: onUpdate:modelValue, onUpdateModelValue, onItem:selected, onItemSelected\n * export default defineComponent({\n * props: makeProps(),\n * emits,\n * setup(props, { emit }) {\n * // All props are properly typed including emit handlers\n * props.onUpdateModelValue?.(newValue)\n * emit('update:modelValue', newValue)\n * }\n * })\n *\n * // Template supports both syntaxes:\n * // <MyComponent :onUpdate:modelValue=\"handler\" />\n * // <MyComponent :onUpdate:model-value=\"handler\" />\n * // <MyComponent :onItem:selected=\"handler\" />\n * // <MyComponent :onItem:item-selected=\"handler\" />\n * ```\n */\nexport const propsAndEmitsFactory = <\n P extends ComponentObjectPropsOptions,\n E extends EmitValidators,\n>(\n props: P,\n emits: E,\n source: string\n): {\n makeProps: PropFactory<Merge<P, EmitHandlerProps<E>>>\n emits: EmitFunctions<E>\n} => {\n const makeEmits = emitsFactory(emits)\n for (const key in emits) {\n const { camel: camelPropKey, kebab: maybeKebabPropKey } = getCamelAndMaybeKebabPropKeysFor(key)\n if ('undefined' === typeof props[camelPropKey]) {\n // @ts-ignore\n props[camelPropKey] = {\n type: Function as PropType<EmitFunctions<E>[typeof key] | undefined>,\n default: undefined,\n }\n }\n if ('undefined' === typeof props[maybeKebabPropKey]) {\n // @ts-ignore\n props[maybeKebabPropKey] = {\n type: Function as PropType<EmitFunctions<E>[typeof key] | undefined>,\n default: undefined,\n }\n }\n }\n const makeProps = propsFactory(props as unknown as Merge<P, EmitHandlerProps<E>>, source)\n return {\n makeProps,\n emits: makeEmits,\n }\n}\n\nexport const propsAndDefaultsFactory = <P extends ComponentObjectPropsOptions>(\n props: P,\n source: string\n): { factory: PropFactory<P>; defaults: ExtractPublicDefaultPropTypes<P> } => {\n const factory = propsFactory(props, source) as PropFactory<P>\n const defaults = getDefaultsForPropFactory(factory as any) as ExtractPublicDefaultPropTypes<P>\n return { factory, defaults }\n}\n\nexport type ExtractPublicPropTypesFromFactory<T extends PropFactory<any>> = ExtractPublicPropTypes<\n ReturnType<T>\n>\n\nexport type ExtractPublicPropTypesFromUnknownFactory<T extends (...args: any) => any> =\n ExtractPublicPropTypes<ReturnType<T>>\n\n/**\n * Transforms emit validators or emit functions into hookable event types.\n *\n * Each event gets converted to a tuple with two signatures:\n * 1. Hook handler signature - receives the original event parameters\n * 2. Cleanup function signature - receives Error | null plus the original parameters\n *\n * @template T - The emit validators or emit functions object type\n *\n * @example\n * ```typescript\n * const emits = {\n * saving: (model: BaseModel) => true,\n * finding: (query: QueryBuilder) => true\n * }\n *\n * type Events = HookableEvents<typeof emits>\n * // {\n * // saving: [\n * // [BaseModel], // for hook handler\n * // [error: Error | null, BaseModel], // for cleanup function\n * // ],\n * // finding: [\n * // [QueryBuilder], // for hook handler\n * // [error: Error | null, QueryBuilder], // for cleanup function\n * // ]\n * // }\n * ```\n */\nexport type HookableEvents<T extends EmitValidators | EmitFunctions<EmitValidators>> = {\n [K in keyof T]: T[K] extends (...args: infer P) => boolean | void\n ? [callbackArgs: [...P], cleanupCallbackArgs: [error: Error | null, ...P]]\n : never\n}\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map2 = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map2[key] = 1;\n return (val) => val in map2;\n}\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$1.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst isRef$1 = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef$1(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n/**\n* @vue/reactivity v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n this._active = true;\n this._on = 0;\n this.effects = [];\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n activeEffectScope = this.prevScope;\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\nlet activeSub;\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n this.deps = void 0;\n this.depsTail = void 0;\n this.flags = 1 | 4;\n this.next = void 0;\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn$2(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed2) {\n if (computed2.flags & 4 && !(computed2.flags & 16)) {\n return;\n }\n computed2.flags &= -17;\n if (computed2.globalVersion === globalVersion) {\n return;\n }\n computed2.globalVersion = globalVersion;\n if (!computed2.isSSR && computed2.flags & 128 && (!computed2.deps && !computed2._dirty || !isDirty(computed2))) {\n return;\n }\n computed2.flags |= 2;\n const dep = computed2.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed2;\n shouldTrack = true;\n try {\n prepareDeps(computed2);\n const value = computed2.fn(computed2._value);\n if (dep.version === 0 || hasChanged(value, computed2._value)) {\n computed2.flags |= 128;\n computed2._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed2);\n computed2.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed2) {\n this.computed = computed2;\n this.version = 0;\n this.activeLink = void 0;\n this.subs = void 0;\n this.map = void 0;\n this.key = void 0;\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed2 = link.dep.computed;\n if (computed2 && !link.dep.subs) {\n computed2.flags |= 4 | 16;\n for (let l = computed2.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self2, method, wrapValue) {\n const arr = shallowReadArray(self2);\n const iter = arr[method]();\n if (arr !== self2 && !isShallow(self2)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self2, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self2);\n const needsWrap = arr !== self2 && !isShallow(self2);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self2, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self2) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self2);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self2);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self2, method, fn, args) {\n const arr = shallowReadArray(self2);\n let wrappedFn = fn;\n if (arr !== self2) {\n if (!isShallow(self2)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self2);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self2);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self2, method, args) {\n const arr = toRaw(self2);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self2, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self2)[method].apply(self2, args);\n endBatch();\n resetTracking();\n return res;\n}\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly2, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly2) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly2) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;\n !readonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly2 ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly2, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n this._value = void 0;\n this.dep = new Dep(this);\n this.__v_isRef = true;\n this.deps = void 0;\n this.depsTail = void 0;\n this.flags = 16;\n this.globalVersion = globalVersion - 1;\n this.next = void 0;\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions) ;\n return cRef;\n}\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn$2(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch$1(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn$2)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n/**\n* @vue/runtime-core v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version2) {\n emit$1(\"app:init\", app, version2, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\", app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\"\n /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:updated\"\n /* COMPONENT_UPDATED */\n);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\"\n /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\"\n /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\"\n /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\",\n component.appContext.app,\n component,\n event,\n params\n );\n}\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n n2.el.__isMounted = false;\n queuePostRenderEffect(() => {\n mountToTarget();\n delete n2.el.__isMounted;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook2 = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook2(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook2(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook2(cancelHook, [el]);\n } else {\n callHook2(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove2) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove2();\n }\n callHook2(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove2();\n if (cancelled) {\n callHook2(onLeaveCancelled, [el]);\n } else {\n callHook2(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref3 } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref3) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref3)) {\n callWithErrorHandling(ref3, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref3);\n const _isRef = isRef(ref3);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref3) ? setupState[ref3] : refs[ref3] : ref3.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref3] = [refValue];\n if (canSetSetupRef(ref3)) {\n setupState[ref3] = refs[ref3];\n }\n } else {\n ref3.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref3.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref3] = value;\n if (canSetSetupRef(ref3)) {\n setupState[ref3] = value;\n }\n } else if (_isRef) {\n ref3.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref3, `(${typeof ref3})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref3, `(${typeof ref3})`);\n }\n }\n}\ngetGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\ngetGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => resolveMergedOptions(i),\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => instanceWatch.bind(i)\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1:\n return setupState[key];\n case 2:\n return data[key];\n case 4:\n return ctx[key];\n case 3:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (shouldCacheAccess) {\n accessCache[key] = 0;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\", key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\", key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\", key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\", key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\", key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return extend(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n const cloned = cloneVNode(vnode);\n cloned.el = null;\n render(cloned, rootContainer, namespace);\n };\n }\n {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n if (hasOwn(context.provides, key)) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n } else {\n warn$1(\n `App already provides property with key \"${String(key)}\" inherited from its parent element. It will be overwritten with the new value.`\n );\n }\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[\n 0\n /* shouldCast */\n ]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[\n 1\n /* shouldCastTrue */\n ] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (!isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[\n 0\n /* shouldCast */\n ] = shouldCast;\n prop[\n 1\n /* shouldCastTrue */\n ] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !camelizePropsKey.includes(key)\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || !isInternalKey(key)) {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\nfunction initFeatureFlags() {\n const needWarn = [];\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\nconst queuePostRenderEffect = queueEffectWithSuspense;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref: ref3, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref3 != null && parentComponent) {\n setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n );\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n {\n if (root.ce) {\n root.ce._injectChildStyle(type);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect2 = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect2.run.bind(effect2);\n const job = instance.job = effect2.runIfDirty.bind(effect2);\n job.i = instance;\n job.id = instance.uid;\n effect2.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect2.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect2.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove22 = () => {\n if (vnode.ctx.isUnmounted) {\n hostRemove(el);\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const performLeave = () => {\n leave(el, () => {\n remove22();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove22, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref: ref3,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref3 != null) {\n pauseTracking();\n setRef(ref3, null, parentSuspense, vnode, true);\n resetTracking();\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove2(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove2 = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove2(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const {\n bum,\n scope,\n job,\n subTree,\n um,\n m,\n a,\n parent,\n slots: { __: slotCacheKeys }\n } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n if (parent && isArray(slotCacheKeys)) {\n slotCacheKeys.forEach((v) => {\n parent.renderCache[v] = void 0;\n });\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove2,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n return {\n render,\n hydrate,\n createApp: createAppAPI(render)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect: effect2, job }, allowed) {\n if (allowed) {\n effect2.flags |= 32;\n job.flags |= 4;\n } else {\n effect2.flags &= -33;\n job.flags &= -5;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n c2.el && (c2.el.__vnode = c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\nfunction watchEffect(effect2, options) {\n return doWatch(effect2, null, options);\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener2 = event.startsWith(\"update:\");\n const modifiers = isModelListener2 && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener2) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (!isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit: emit2,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit: emit2\n } : { attrs, slots, emit: emit2 }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nlet currentBlock = null;\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value, inVOnce = false) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock && inVOnce) {\n currentBlock.hasOnce = true;\n }\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= -257;\n n2.shapeFlag &= -513;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref: ref3,\n ref_key,\n ref_for\n}) => {\n if (typeof ref3 === \"number\") {\n ref3 = \"\" + ref3;\n }\n return ref3 != null ? isString(ref3) || isRef(ref3) || isFunction(ref3) ? { i: currentRenderingInstance, r: ref3, k: ref_key, f: !!ref_for } : ref3 : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref: ref3, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref3 ? isArray(ref3) ? ref3.concat(normalizeRef(extraProps)) : [ref3, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref3,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized || isSSR);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n pauseTracking();\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n const isAsyncSetup = isPromise(setupResult);\n resetTracking();\n reset();\n if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {\n markAsyncBoundary(instance);\n }\n if (isAsyncSetup) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nconst isRuntimeOnly = () => true;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n instance.render = Component.render || NOOP;\n }\n {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n pauseTracking();\n const value = obj.value;\n resetTracking();\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed2 = extractKeys(instance, \"computed\");\n if (computed2) {\n blocks.push(createInstanceBlock(\"computed\", computed2));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\nconst version = \"3.5.16\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\n!!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\n!!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\n/**\n* vue v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nexport {\n Text as $,\n h as A,\n defineComponent as B,\n Comment as C,\n getCurrentInstance as D,\n warn as E,\n Fragment as F,\n toValue as G,\n readonly as H,\n toRaw as I,\n effectScope as J,\n isRef as K,\n markRaw as L,\n extend as M,\n BaseTransitionPropsValidators as N,\n looseToNumber as O,\n invokeArrayFns as P,\n isArray as Q,\n createRenderer as R,\n BaseTransition as S,\n isObject as T,\n assertNumber as U,\n toNumber as V,\n useTransitionState as W,\n onUpdated as X,\n getTransitionRawChildren as Y,\n setTransitionHooks as Z,\n resolveTransitionHooks as _,\n camelize as a,\n isOn as a0,\n isModelListener as a1,\n isSpecialBooleanAttr as a2,\n isString as a3,\n isFunction as a4,\n includeBooleanAttr as a5,\n isSymbol as a6,\n hyphenate as a7,\n NOOP as a8,\n callWithAsyncErrorHandling as a9,\n resolveDynamicComponent as aa,\n nextTick as ab,\n createTextVNode as ac,\n onBeforeMount as ad,\n onBeforeUpdate as ae,\n resolveComponent as af,\n onUnmounted as ag,\n cloneVNode as ah,\n Teleport as ai,\n inject as b,\n capitalize as c,\n computed as d,\n ref as e,\n toRefs as f,\n onMounted as g,\n useId as h,\n isVNode as i,\n onDeactivated as j,\n onActivated as k,\n onBeforeUnmount as l,\n getCurrentScope as m,\n watch as n,\n onScopeDispose as o,\n provide as p,\n createVNode as q,\n reactive as r,\n shallowRef as s,\n toRef as t,\n unref as u,\n mergeProps as v,\n watchEffect as w,\n toDisplayString as x,\n withDirectives as y,\n resolveDirective as z\n};\n//# sourceMappingURL=vue.runtime.esm-bundler-BRffRTPw.mjs.map\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar _arr, _pointer;\nimport { s as shallowRef, r as reactive, w as watchEffect, t as toRef, F as Fragment, c as capitalize, u as unref, a as camelize, i as isVNode, C as Comment } from \"../vue.runtime.esm-bundler-BRffRTPw.mjs\";\nimport { IN_BROWSER } from \"./globals.mjs\";\nfunction getNestedValue(obj, path, fallback) {\n const last = path.length - 1;\n if (last < 0) return obj === void 0 ? fallback : obj;\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n if (obj == null) return fallback;\n return obj[path[last]] === void 0 ? fallback : obj[path[last]];\n}\nfunction deepEqual(a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n return false;\n }\n return props.every((p) => deepEqual(a[p], b[p]));\n}\nfunction getObjectValueByPath(obj, path, fallback) {\n if (obj == null || !path || typeof path !== \"string\") return fallback;\n if (obj[path] !== void 0) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, \".$1\");\n path = path.replace(/^\\./, \"\");\n return getNestedValue(obj, path.split(\".\"), fallback);\n}\nfunction getPropertyFromItem(item, property, fallback) {\n if (property === true) return item === void 0 ? fallback : item;\n if (property == null || typeof property === \"boolean\") return fallback;\n if (item !== Object(item)) {\n if (typeof property !== \"function\") return fallback;\n const value2 = property(item, fallback);\n return typeof value2 === \"undefined\" ? fallback : value2;\n }\n if (typeof property === \"string\")\n return getObjectValueByPath(item, property, fallback);\n if (Array.isArray(property)) return getNestedValue(item, property, fallback);\n if (typeof property !== \"function\") return fallback;\n const value = property(item, fallback);\n return typeof value === \"undefined\" ? fallback : value;\n}\nfunction createRange(length, start = 0) {\n return Array.from({ length }, (v, k) => start + k);\n}\nfunction getZIndex(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;\n const index = Number(window.getComputedStyle(el).getPropertyValue(\"z-index\"));\n if (!index) return getZIndex(el.parentNode);\n return index;\n}\nfunction convertToUnit(str, unit = \"px\") {\n if (str == null || str === \"\") {\n return void 0;\n }\n const num = Number(str);\n if (isNaN(num)) {\n return String(str);\n } else if (!isFinite(num)) {\n return void 0;\n } else {\n return `${num}${unit}`;\n }\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === \"object\" && !Array.isArray(obj);\n}\nfunction isPlainObject(obj) {\n let proto;\n return obj !== null && typeof obj === \"object\" && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);\n}\nfunction refElement(obj) {\n if (obj && \"$el\" in obj) {\n const el = obj.$el;\n if ((el == null ? void 0 : el.nodeType) === Node.TEXT_NODE) {\n return el.nextElementSibling;\n }\n return el;\n }\n return obj;\n}\nconst keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16\n});\nconst keyValues = Object.freeze({\n enter: \"Enter\",\n tab: \"Tab\",\n delete: \"Delete\",\n esc: \"Escape\",\n space: \"Space\",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n left: \"ArrowLeft\",\n right: \"ArrowRight\",\n end: \"End\",\n home: \"Home\",\n del: \"Delete\",\n backspace: \"Backspace\",\n insert: \"Insert\",\n pageup: \"PageUp\",\n pagedown: \"PageDown\",\n shift: \"Shift\"\n});\nfunction keys(o) {\n return Object.keys(o);\n}\nfunction has(obj, key) {\n return key.every((k) => obj.hasOwnProperty(k));\n}\nfunction pick(obj, paths) {\n const found = {};\n for (const key of paths) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n found[key] = obj[key];\n }\n }\n return found;\n}\nfunction pickWithRest(obj, paths, exclude) {\n const found = /* @__PURE__ */ Object.create(null);\n const rest = /* @__PURE__ */ Object.create(null);\n for (const key in obj) {\n if (paths.some(\n (path) => path instanceof RegExp ? path.test(key) : path === key\n ) && !(exclude == null ? void 0 : exclude.some((path) => path === key))) {\n found[key] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n }\n return [found, rest];\n}\nfunction omit(obj, exclude) {\n const clone = { ...obj };\n exclude.forEach((prop) => delete clone[prop]);\n return clone;\n}\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst bubblingEvents = [\n \"onAfterscriptexecute\",\n \"onAnimationcancel\",\n \"onAnimationend\",\n \"onAnimationiteration\",\n \"onAnimationstart\",\n \"onAuxclick\",\n \"onBeforeinput\",\n \"onBeforescriptexecute\",\n \"onChange\",\n \"onClick\",\n \"onCompositionend\",\n \"onCompositionstart\",\n \"onCompositionupdate\",\n \"onContextmenu\",\n \"onCopy\",\n \"onCut\",\n \"onDblclick\",\n \"onFocusin\",\n \"onFocusout\",\n \"onFullscreenchange\",\n \"onFullscreenerror\",\n \"onGesturechange\",\n \"onGestureend\",\n \"onGesturestart\",\n \"onGotpointercapture\",\n \"onInput\",\n \"onKeydown\",\n \"onKeypress\",\n \"onKeyup\",\n \"onLostpointercapture\",\n \"onMousedown\",\n \"onMousemove\",\n \"onMouseout\",\n \"onMouseover\",\n \"onMouseup\",\n \"onMousewheel\",\n \"onPaste\",\n \"onPointercancel\",\n \"onPointerdown\",\n \"onPointerenter\",\n \"onPointerleave\",\n \"onPointermove\",\n \"onPointerout\",\n \"onPointerover\",\n \"onPointerup\",\n \"onReset\",\n \"onSelect\",\n \"onSubmit\",\n \"onTouchcancel\",\n \"onTouchend\",\n \"onTouchmove\",\n \"onTouchstart\",\n \"onTransitioncancel\",\n \"onTransitionend\",\n \"onTransitionrun\",\n \"onTransitionstart\",\n \"onWheel\"\n];\nconst compositionIgnoreKeys = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowRight\",\n \"ArrowLeft\",\n \"Enter\",\n \"Escape\",\n \"Tab\",\n \" \"\n];\nfunction isComposingIgnoreKey(e) {\n return e.isComposing && compositionIgnoreKeys.includes(e.key);\n}\nfunction filterInputAttrs(attrs) {\n const [events, props] = pickWithRest(attrs, [onRE]);\n const inputEvents = omit(events, bubblingEvents);\n const [rootAttrs, inputAttrs] = pickWithRest(props, [\n \"class\",\n \"style\",\n \"id\",\n /^data-/\n ]);\n Object.assign(rootAttrs, events);\n Object.assign(inputAttrs, inputEvents);\n return [rootAttrs, inputAttrs];\n}\nfunction arrayDiff(a, b) {\n const diff = [];\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i]);\n }\n return diff;\n}\nfunction wrapInArray(v) {\n return v == null ? [] : Array.isArray(v) ? v : [v];\n}\nfunction defaultFilter(value, search, item) {\n return value != null && search != null && typeof value !== \"boolean\" && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1;\n}\nfunction debounce(fn, delay) {\n let timeoutId = 0;\n const wrap = (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), unref(delay));\n };\n wrap.clear = () => {\n clearTimeout(timeoutId);\n };\n wrap.immediate = fn;\n return wrap;\n}\nfunction throttle(fn, limit) {\n let throttling = false;\n return (...args) => {\n if (!throttling) {\n throttling = true;\n setTimeout(() => throttling = false, limit);\n return fn(...args);\n }\n };\n}\nfunction clamp(value, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value));\n}\nfunction getDecimals(value) {\n const trimmedStr = value.toString().trim();\n return trimmedStr.includes(\".\") ? trimmedStr.length - trimmedStr.indexOf(\".\") - 1 : 0;\n}\nfunction padEnd(str, length, char = \"0\") {\n return str + char.repeat(Math.max(0, length - str.length));\n}\nfunction padStart(str, length, char = \"0\") {\n return char.repeat(Math.max(0, length - str.length)) + str;\n}\nfunction chunk(str, size = 1) {\n const chunked = [];\n let index = 0;\n while (index < str.length) {\n chunked.push(str.substr(index, size));\n index += size;\n }\n return chunked;\n}\nfunction chunkArray(array, size = 1) {\n return Array.from(\n { length: Math.ceil(array.length / size) },\n (v, i) => array.slice(i * size, i * size + size)\n );\n}\nfunction humanReadableFileSize(bytes, base = 1e3) {\n if (bytes < base) {\n return `${bytes} B`;\n }\n const prefix = base === 1024 ? [\"Ki\", \"Mi\", \"Gi\"] : [\"k\", \"M\", \"G\"];\n let unit = -1;\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base;\n ++unit;\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`;\n}\nfunction mergeDeep(source = {}, target = {}, arrayFn) {\n const out = {};\n for (const key in source) {\n out[key] = source[key];\n }\n for (const key in target) {\n const sourceProperty = source[key];\n const targetProperty = target[key];\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);\n continue;\n }\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty);\n continue;\n }\n out[key] = targetProperty;\n }\n return out;\n}\nfunction flattenFragments(nodes) {\n return nodes.map((node) => {\n if (node.type === Fragment) {\n return flattenFragments(node.children);\n } else {\n return node;\n }\n }).flat();\n}\nfunction toKebabCase(str = \"\") {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);\n const kebab = str.replace(/[^a-z]/gi, \"-\").replace(/\\B([A-Z])/g, \"-$1\").toLowerCase();\n toKebabCase.cache.set(str, kebab);\n return kebab;\n}\ntoKebabCase.cache = /* @__PURE__ */ new Map();\nfunction findChildrenWithProvide(key, vnode) {\n if (!vnode || typeof vnode !== \"object\") return [];\n if (Array.isArray(vnode)) {\n return vnode.map((child) => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map((child) => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(\n key\n )) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n return [];\n}\nclass CircularBuffer {\n constructor(size) {\n __privateAdd(this, _arr, []);\n __privateAdd(this, _pointer, 0);\n this.size = size;\n }\n get isFull() {\n return __privateGet(this, _arr).length === this.size;\n }\n push(val) {\n __privateGet(this, _arr)[__privateGet(this, _pointer)] = val;\n __privateSet(this, _pointer, (__privateGet(this, _pointer) + 1) % this.size);\n }\n values() {\n return __privateGet(this, _arr).slice(__privateGet(this, _pointer)).concat(__privateGet(this, _arr).slice(0, __privateGet(this, _pointer)));\n }\n clear() {\n __privateGet(this, _arr).length = 0;\n __privateSet(this, _pointer, 0);\n }\n}\n_arr = new WeakMap();\n_pointer = new WeakMap();\nfunction getEventCoordinates(e) {\n if (\"touches\" in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };\n }\n return { clientX: e.clientX, clientY: e.clientY };\n}\nfunction destructComputed(getter) {\n const refs = reactive({});\n watchEffect(\n () => {\n const base = getter();\n for (const key in base) {\n refs[key] = base[key];\n }\n },\n { flush: \"sync\" }\n );\n const obj = {};\n for (const key in refs) {\n obj[key] = toRef(() => refs[key]);\n }\n return obj;\n}\nfunction includes(arr, val) {\n return arr.includes(val);\n}\nfunction eventName(propName) {\n return propName[2].toLowerCase() + propName.slice(3);\n}\nconst EventProp = () => [Function, Array];\nfunction hasEvent(props, name) {\n name = \"on\" + capitalize(name);\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);\n}\nfunction callEvent(handler, ...args) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args);\n }\n } else if (typeof handler === \"function\") {\n handler(...args);\n }\n}\nfunction focusableChildren(el, filterByTabIndex = true) {\n const targets = [\n \"button\",\n \"[href]\",\n 'input:not([type=\"hidden\"])',\n \"select\",\n \"textarea\",\n \"[tabindex]\"\n ].map(\n (s) => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : \"\"}:not([disabled])`\n ).join(\", \");\n return [...el.querySelectorAll(targets)];\n}\nfunction getNextElement(elements, location, condition) {\n let _el;\n let idx = elements.indexOf(document.activeElement);\n const inc = location === \"next\" ? 1 : -1;\n do {\n idx += inc;\n _el = elements[idx];\n } while ((!_el || _el.offsetParent == null || !((condition == null ? void 0 : condition(_el)) ?? true)) && idx < elements.length && idx >= 0);\n return _el;\n}\nfunction focusChild(el, location) {\n var _a, _b, _c, _d;\n const focusable = focusableChildren(el);\n if (location == null) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n (_a = focusable[0]) == null ? void 0 : _a.focus();\n }\n } else if (location === \"first\") {\n (_b = focusable[0]) == null ? void 0 : _b.focus();\n } else if (location === \"last\") {\n (_c = focusable.at(-1)) == null ? void 0 : _c.focus();\n } else if (typeof location === \"number\") {\n (_d = focusable[location]) == null ? void 0 : _d.focus();\n } else {\n const _el = getNextElement(focusable, location);\n if (_el) _el.focus();\n else focusChild(el, location === \"next\" ? \"first\" : \"last\");\n }\n}\nfunction isEmpty(val) {\n return val === null || val === void 0 || typeof val === \"string\" && val.trim() === \"\";\n}\nfunction noop() {\n}\nfunction matchesSelector(el, selector) {\n const supportsSelector = IN_BROWSER && typeof CSS !== \"undefined\" && typeof CSS.supports !== \"undefined\" && CSS.supports(`selector(${selector})`);\n if (!supportsSelector) return null;\n try {\n return !!el && el.matches(selector);\n } catch (err) {\n return null;\n }\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n return child.type !== Fragment || ensureValidVNode(child.children);\n }) ? vnodes : null;\n}\nfunction renderSlot(slot, props, fallback) {\n return (slot == null ? void 0 : slot(props)) ?? (fallback == null ? void 0 : fallback(props));\n}\nfunction defer(timeout, cb) {\n if (!IN_BROWSER || timeout === 0) {\n cb();\n return () => {\n };\n }\n const timeoutId = window.setTimeout(cb, timeout);\n return () => window.clearTimeout(timeoutId);\n}\nfunction isClickInsideElement(event, targetDiv) {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const divRect = targetDiv.getBoundingClientRect();\n const divLeft = divRect.left;\n const divTop = divRect.top;\n const divRight = divRect.right;\n const divBottom = divRect.bottom;\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;\n}\nfunction templateRef() {\n const el = shallowRef();\n const fn = (target) => {\n el.value = target;\n };\n Object.defineProperty(fn, \"value\", {\n enumerable: true,\n get: () => el.value,\n set: (val) => el.value = val\n });\n Object.defineProperty(fn, \"el\", {\n enumerable: true,\n get: () => refElement(el.value)\n });\n return fn;\n}\nfunction checkPrintable(e) {\n const isPrintableChar = e.key.length === 1;\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;\n return isPrintableChar && noModifier;\n}\nfunction isPrimitive(value) {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\";\n}\nfunction escapeForRegex(sign) {\n return \"\\\\^$*+?.()|{}[]\".includes(sign) ? `\\\\${sign}` : sign;\n}\nfunction extractNumber(text, decimalDigitsLimit, decimalSeparator) {\n const onlyValidCharacters = new RegExp(\n `[\\\\d\\\\-${escapeForRegex(decimalSeparator)}]`\n );\n const cleanText = text.split(\"\").filter((x) => onlyValidCharacters.test(x)).filter(\n (x, i, all) => i === 0 && /[-]/.test(x) || // sign allowed at the start\n x === decimalSeparator && i === all.indexOf(x) || // decimal separator allowed only once\n /\\d/.test(x)\n ).join(\"\");\n if (decimalDigitsLimit === 0) {\n return cleanText.split(decimalSeparator)[0];\n }\n const decimalPart = new RegExp(`${escapeForRegex(decimalSeparator)}\\\\d`);\n if (decimalDigitsLimit !== null && decimalPart.test(cleanText)) {\n const parts = cleanText.split(decimalSeparator);\n return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join(\n decimalSeparator\n );\n }\n return cleanText;\n}\nfunction camelizeProps(props) {\n const out = {};\n for (const prop in props) {\n out[camelize(prop)] = props[prop];\n }\n return out;\n}\nfunction onlyDefinedProps(props) {\n const booleanAttributes = [\"checked\", \"disabled\"];\n return Object.fromEntries(\n Object.entries(props).filter(\n ([key, v]) => booleanAttributes.includes(key) ? !!v : v !== void 0\n )\n );\n}\nexport {\n CircularBuffer,\n EventProp,\n arrayDiff,\n callEvent,\n camelizeProps,\n checkPrintable,\n chunk,\n chunkArray,\n clamp,\n convertToUnit,\n createRange,\n debounce,\n deepEqual,\n defaultFilter,\n defer,\n destructComputed,\n ensureValidVNode,\n escapeForRegex,\n eventName,\n extractNumber,\n filterInputAttrs,\n findChildrenWithProvide,\n flattenFragments,\n focusChild,\n focusableChildren,\n getDecimals,\n getEventCoordinates,\n getNestedValue,\n getNextElement,\n getObjectValueByPath,\n getPropertyFromItem,\n getZIndex,\n has,\n hasEvent,\n humanReadableFileSize,\n includes,\n isClickInsideElement,\n isComposingIgnoreKey,\n isEmpty,\n isObject,\n isOn,\n isPlainObject,\n isPrimitive,\n keyCodes,\n keyValues,\n keys,\n matchesSelector,\n mergeDeep,\n noop,\n omit,\n onlyDefinedProps,\n padEnd,\n padStart,\n pick,\n pickWithRest,\n refElement,\n renderSlot,\n templateRef,\n throttle,\n toKebabCase,\n wrapInArray\n};\n//# sourceMappingURL=helpers.mjs.map\n","import { D as getCurrentInstance$1 } from \"../vue.runtime.esm-bundler-BRffRTPw.mjs\";\nimport { toKebabCase } from \"./helpers.mjs\";\nfunction getCurrentInstance(name, message) {\n const vm = getCurrentInstance$1();\n if (!vm) {\n throw new Error(\n `[Vuetify] ${name} ${message || \"must be called from inside a setup function\"}`\n );\n }\n return vm;\n}\nfunction getCurrentInstanceName(name = \"composables\") {\n const vm = getCurrentInstance(name).type;\n return toKebabCase((vm == null ? void 0 : vm.aliasName) || (vm == null ? void 0 : vm.name));\n}\nexport {\n getCurrentInstance,\n getCurrentInstanceName\n};\n//# sourceMappingURL=getCurrentInstance.mjs.map\n","import { isObject } from './guards'\nimport { encode } from '@nhtio/lucid-resourceful/encoding'\nimport { getCamelAndMaybeKebabPropKeysFor } from './factories'\nimport { debounce, throttle } from '@nhtio/vuetifiable/util/helpers'\nimport { toRaw, toValue, ref, toRef, computed, warn, nextTick } from 'vue'\nimport {\n getCurrentInstanceName,\n getCurrentInstance,\n} from '@nhtio/vuetifiable/util/getCurrentInstance'\nimport type { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport type {\n ExtractPublicPropTypes,\n ExtractDefaultPropTypes,\n MaybeRefOrGetter,\n Slot,\n VNode,\n PropType,\n Ref,\n} from 'vue'\n\nexport type ObjectStrippedOfUndefinedValues<T extends Record<string, any>> = {\n [K in keyof T as T[K] extends undefined ? never : K]: T[K] extends undefined ? never : T[K]\n}\n\n/**\n * Removes all properties with `undefined` values from an object.\n * This is useful for cleaning up objects before passing them to APIs or components\n * that should not receive undefined values.\n *\n * @template T - The type of the input object\n * @param obj - The object to process\n * @returns A new object with all undefined values removed\n *\n * @example\n * ```typescript\n * const input = { a: 1, b: undefined, c: 'hello', d: undefined }\n * const result = stripUndefinedValuesFromObject(input)\n * // result: { a: 1, c: 'hello' }\n * ```\n */\nexport const stripUndefinedValuesFromObject = <T extends Record<string, any>>(\n obj: T\n): ObjectStrippedOfUndefinedValues<T> => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined)\n ) as ObjectStrippedOfUndefinedValues<T>\n}\n\n/**\n * Extract default values for properties that are both public and have defaults.\n * This ensures we only get defaults for props that are actually exposed to consumers.\n *\n * This type intersects the keys from both `ExtractDefaultPropTypes` and `ExtractPublicPropTypes`\n * to create a type that only includes properties that are:\n * - Public (exposed to component consumers)\n * - Have default values defined\n * - Are not nullable/undefined\n *\n * @template O - The props object type to extract from\n *\n * @example\n * ```typescript\n * type MyProps = {\n * publicWithDefault: { type: StringConstructor, default: 'hello' }\n * publicRequired: { type: NumberConstructor, required: true }\n * privateWithDefault: { type: BooleanConstructor, default: false, __internal: true }\n * }\n *\n * type Defaults = ExtractPublicDefaultPropTypes<MyProps>\n * // Result: { publicWithDefault: string }\n * ```\n */\nexport type ExtractPublicDefaultPropTypes<O> = {\n [K in keyof ExtractDefaultPropTypes<O> & keyof ExtractPublicPropTypes<O>]: NonNullable<\n ExtractDefaultPropTypes<O>[K]\n >\n}\n\n/**\n * Type representing the return value of a Vuetifiable props factory function.\n * This is used to constrain the generic parameter in `getDefaultsForPropFactory`.\n */\nexport type PropFactory = ReturnType<typeof propsFactory>\n\n/**\n * Extracts default values from a Vuetifiable props factory and returns them as a runtime object.\n * This is useful for getting default prop values for component initialization or testing.\n *\n * The function handles different types of default values:\n * - Primitive defaults (string, number, boolean) are returned as-is\n * - Reference type defaults (Object, Array, etc.) defined as functions are called to get fresh instances\n * - Props without defaults are completely excluded from the result\n * - The result is cleaned to ensure no undefined values slip through\n *\n * Type safety is enforced at both compile-time (via NonNullable) and runtime (via stripUndefinedValuesFromObject).\n *\n * @template T - The props factory type, constrained to `PropFactory`\n * @template ExtractedPublicProperties - The extracted public properties with non-nullable defaults\n * @param factory - The Vuetifiable props factory function\n * @returns A clean object containing only the default values for public props that have defaults, guaranteed to be free of undefined values\n *\n * @example\n * ```typescript\n * const myPropsFactory = propsFactory({\n * title: { type: String, default: 'Hello World' },\n * items: { type: Array, default: () => [] },\n * settings: { type: Object, default: () => ({ theme: 'dark' }) },\n * count: { type: Number, default: 0 },\n * enabled: { type: Boolean }, // no default - will be excluded\n * internal: { type: String, default: 'secret', __internal: true } // private - will be excluded\n * }, 'MyComponent')\n *\n * const defaults = getDefaultsForPropFactory(myPropsFactory)\n * // Result: { title: 'Hello World', items: [], settings: { theme: 'dark' }, count: 0 }\n * // Note: 'enabled' and 'internal' are not included - no defaults or not public\n * ```\n */\nexport const getDefaultsForPropFactory = <\n T extends PropFactory = PropFactory,\n ExtractedPublicProperties = ExtractPublicDefaultPropTypes<T>,\n>(\n factory: T\n): ExtractedPublicProperties => {\n const ret: Partial<ExtractedPublicProperties> = {}\n const generated = factory()\n\n Object.entries(generated).forEach(([key, value]) => {\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null &&\n 'default' in value\n ) {\n // Handle reference type defaults that are functions (Object, Array, etc.)\n const isReferenceType =\n typeof value.type === 'function' && ['Object', 'Array'].includes(value.type.name)\n\n if (isReferenceType && typeof value.default === 'function') {\n ret[key as keyof ExtractedPublicProperties] = value.default()\n } else {\n // Handle primitive defaults or non-function reference defaults\n ret[key as keyof ExtractedPublicProperties] = (value as any).default\n }\n }\n // Props without defaults are simply omitted (no undefined assignment)\n })\n\n // Strip any undefined values that might have slipped through\n return stripUndefinedValuesFromObject(ret) as ExtractedPublicProperties\n}\n\n/**\n * Converts a value to an absolute integer, with fallback handling.\n * This utility is useful for sanitizing numeric inputs that should always be positive integers.\n *\n * @param value - The value to convert (number or string)\n * @param fallback - The fallback value to use if conversion fails (default: 0)\n * @returns An absolute integer value\n *\n * @example\n * ```typescript\n * asAbsInt(42) // 42\n * asAbsInt(-15) // 15\n * asAbsInt('10') // 10\n * asAbsInt('-5') // 5\n * asAbsInt('invalid') // 0 (fallback)\n * asAbsInt('abc', 10) // 10 (custom fallback)\n * asAbsInt(3.7) // 4 (rounded then made absolute)\n * ```\n */\nexport const asAbsInt = (value: number | string, fallback: number = 0): number => {\n const num = typeof value === 'number' ? value : Number.parseInt(value as string, 10)\n return Number.isNaN(num) ? Math.abs(Math.round(fallback)) : Math.abs(Math.round(num))\n}\n\n/**\n * Generates unique HTML element identifiers using high-quality encoding for collision resistance.\n * This function creates valid HTML IDs by combining a prefix with an encoded, sanitized suffix\n * derived from namespace, timestamp, and random data.\n *\n * The function ensures HTML ID validity by automatically fixing invalid prefixes and uses\n * a robust encoding system to generate high-quality pseudo-random suffixes with excellent\n * collision resistance properties.\n *\n * @param prefix - The prefix for the identifier. Will be prepended with 'p' if it doesn't start with a letter\n * @param namespace - A namespace string to include in the uniqueness calculation\n * @param unprefixedLength - Length of the encoded suffix (default: 8)\n * @param glue - Character(s) used to join prefix and suffix (default: '_')\n * @returns A valid HTML element ID guaranteed to start with a letter\n *\n * @example\n * ```typescript\n * makeIdentifier('btn', 'header') // 'btn_a8f9c2d1'\n * makeIdentifier('123nav', 'menu') // 'p123nav_b7e4f8a9' (prefix auto-fixed)\n * makeIdentifier('form', 'login', 12, '-') // 'form-c9d8e7f6a5b4'\n * makeIdentifier('', 'fallback') // 'p_d6c5b4a3'\n * ```\n */\nexport const makeIdentifier = (\n prefix: string,\n namespace: string,\n unprefixedLength: number = 8,\n glue: string = '_'\n) => {\n if (!prefix.match(/^[a-zA-Z]+$/)) {\n prefix = 'p' + prefix\n }\n const encoded = encode(`${prefix}:${namespace}:${new Date().getTime()}:${Math.random()}`)\n const unprefixed = encoded.replace(/[^a-zA-Z0-9]/g, '').slice(0, unprefixedLength)\n return [prefix, unprefixed].filter(Boolean).join(glue)\n}\n\nexport const getOxfordizedListParts = (items: string[]): { head: string; tail: string } => {\n if (items.length === 0) {\n return { head: '', tail: '' }\n } else if (items.length === 1) {\n return { head: items[0], tail: '' }\n } else if (items.length === 2) {\n return { head: items[0], tail: items[1] }\n } else {\n const head = items.slice(0, -1).join(', ')\n const tail = items[items.length - 1]\n return { head, tail }\n }\n}\n\n/**\n * Recursively converts reactive Vue values to plain JavaScript equivalents.\n * Removes all Vue reactivity (reactive, ref, computed) from nested data structures.\n * Handles objects, arrays, primitives, and any other value types safely.\n *\n * The function gracefully handles edge cases by using a try-catch block around Vue's\n * internal APIs. If `toRaw` or `toValue` throw an error (unlikely but possible), it\n * safely degrades to return the original value unchanged. Due to Vue's internal\n * architecture, the original value is very unlikely to contain reactivity in error cases.\n *\n * @template T - The type of the input value\n * @param value - A reactive value, ref, getter, or plain value to convert\n * @returns A completely plain (non-reactive) deep copy of the input, or the original value if conversion fails\n *\n * @example\n * ```typescript\n * const reactiveData = reactive({ user: { name: 'John' }, items: [1, 2, 3] })\n * const plainData = toUnreactive(reactiveData)\n * // Result: Plain object with no Vue reactivity\n *\n * const reactiveArray = reactive([1, 2, { nested: 'value' }])\n * const plainArray = toUnreactive(reactiveArray)\n * // Result: Plain array with plain objects\n *\n * const primitiveRef = ref(42)\n * const plainPrimitive = toUnreactive(primitiveRef)\n * // Result: 42 (plain number)\n * ```\n */\nexport const toUnreactive = <T = any>(value: MaybeRefOrGetter<T>): T => {\n if ('function' === typeof value) {\n // If the function name starts with \"on\", we need to just return it as-is\n // This will fix the bug where event handlers are called by `toValue` unintentionally\n if (value.name.startsWith('on')) {\n return value as unknown as T\n }\n }\n try {\n const stripped = toRaw(toValue(value))\n if (isObject(stripped)) {\n const keys = Object.keys(stripped) as Array<keyof T>\n return Object.assign({}, ...keys.map((k) => ({ [k]: toUnreactive(stripped[k]) }))) as T\n } else if (Array.isArray(stripped)) {\n return Array.from(stripped).map((item) => toUnreactive(item)) as any\n }\n return stripped\n } catch {\n return value as T\n }\n}\n\nexport const isNotEmpty = (value: MaybeRefOrGetter<any>): boolean => {\n const resolved = toUnreactive(value)\n return resolved !== null && resolved !== undefined && resolved !== ''\n}\n\nexport interface FocusProps {\n 'focused': boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\nexport const useFocus = (props: FocusProps, name = getCurrentInstanceName()) => {\n const isFocused = ref(props.focused)\n const focusClasses = toRef(() => {\n return {\n [`${name}--focused`]: isFocused.value,\n }\n })\n\n function focus() {\n isFocused.value = true\n }\n\n function blur() {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n\nexport const useSlot = <\n D extends Record<string, Slot> = Record<string, Slot>,\n N extends keyof D = keyof D,\n>(\n slot: N,\n slots: any\n): D[N] | undefined => {\n return slots[slot] as D[N] | undefined\n}\n\nconst extractTextFromVNode = (vnode: VNode): string => {\n // Handle text nodes\n if (typeof vnode.children === 'string') {\n return vnode.children\n }\n // Handle array of children (multiple VNodes)\n if (Array.isArray(vnode.children)) {\n return vnode.children\n .map((child) => {\n // If child is a string, return it\n if (typeof child === 'string') {\n return child\n }\n // If child is a VNode, recursively extract text\n if (child && typeof child === 'object') {\n return extractTextFromVNode(child as VNode)\n }\n return ''\n })\n .join('')\n }\n // Handle slots (if children is an object with slot functions)\n if (vnode.children && typeof vnode.children === 'object') {\n // For Vue 3, slots are stored as functions in the children object\n const slots = vnode.children as Record<string, any>\n // Try to get default slot content\n if (typeof slots.default === 'function') {\n const slotContent = slots.default()\n if (Array.isArray(slotContent)) {\n return slotContent\n .map((child) => {\n if (typeof child === 'string') {\n return child\n }\n if (child && typeof child === 'object') {\n return extractTextFromVNode(child)\n }\n return ''\n })\n .join('')\n }\n }\n }\n // If no text content found, return empty string\n return ''\n}\n\n/**\n * Converts a string or VNode to a plain string representation.\n * This utility is essential for handling mixed content types where both plain text\n * and rich VNode content need to be converted to string format for contexts that\n * only accept text (like HTML attributes, tooltips, accessibility labels, etc.).\n *\n * The function provides a safe and comprehensive way to extract meaningful text\n * content from Vue's VNode structures while maintaining backwards compatibility\n * with simple string inputs.\n *\n * @param input - Either a plain string or a Vue VNode to convert\n * @returns A plain string representation of the input content\n *\n * @example\n * ```typescript\n * // String input - returned as-is\n * getStringOrVNodeAsString('Hello World') // 'Hello World'\n *\n * // VNode with text content\n * const textNode = h('span', 'Hello VNode')\n * getStringOrVNodeAsString(textNode) // 'Hello VNode'\n *\n * // Complex VNode with nested content\n * const complexNode = h('div', [\n * h('span', 'Name: '),\n * h('strong', 'John Doe'),\n * h('span', ' (Admin)')\n * ])\n * getStringOrVNodeAsString(complexNode) // 'Name: John Doe (Admin)'\n *\n * // Usage in component context for title attributes\n * const result = props.stringifier(item) // Could be string or VNode\n * h('span', {\n * title: getStringOrVNodeAsString(result) // Always string for HTML attribute\n * }, result) // Rich content rendered here\n * ```\n */\nexport const getStringOrVNodeAsString = (input: string | VNode): string => {\n if (typeof input === 'string') {\n return input\n }\n if (input && typeof input === 'object') {\n return extractTextFromVNode(input)\n }\n return ''\n}\n\n/**\n * Merges CSS classes from multiple sources into a single array suitable for Vue's class binding.\n * This utility is designed for component development where you need to combine built-in component\n * classes with user-provided class additions (not overrides) while maintaining Vue's flexible\n * class binding format.\n *\n * The function preserves the exact structure expected by Vue's class binding system and handles\n * deep flattening of nested arrays while maintaining object references for conditional classes.\n * All input formats are normalized into a consistent output format that Vue can process efficiently.\n *\n * @param original - The base classes (typically from component internals)\n * @param additional - User-provided classes to add to the base classes\n * @param more - Additional class sources to merge (supports unlimited arguments)\n * @returns A flattened array of strings and conditional class objects ready for Vue's class binding\n *\n * @example\n * ```typescript\n * // Component usage - merging internal classes with user classes\n * const componentClasses = ['btn', 'btn-primary']\n * const userClasses = 'btn-large'\n * const conditionalClasses = { 'btn-disabled': isDisabled }\n *\n * const finalClasses = mergeClasses(componentClasses, userClasses, conditionalClasses)\n * // Result: ['btn', 'btn-primary', 'btn-large', { 'btn-disabled': true }]\n *\n * // In Vue component template\n * h('button', { class: mergeClasses(baseClasses, props.class) })\n *\n * // Complex nested structure flattening\n * const nestedClasses = [\n * 'base',\n * ['nested-1', { 'conditional-1': true }],\n * [['deeply-nested', 'another'], { 'conditional-2': false }]\n * ]\n * const flattened = mergeClasses(nestedClasses)\n * // Result: ['base', 'nested-1', { 'conditional-1': true }, 'deeply-nested', 'another', { 'conditional-2': false }]\n * ```\n */\nexport const mergeClasses = (\n original: string | undefined | Array<string | { [key: string]: boolean }>,\n additional: string | undefined | Array<string | { [key: string]: boolean }>,\n ...more: Array<string | undefined | Array<string | { [key: string]: boolean }>>\n): Array<string | { [key: string]: boolean }> => {\n const ret: Array<string | { [key: string]: boolean }> = []\n const handleEntry = (\n entry:\n | string\n | undefined\n | { [key: string]: boolean }\n | Array<string | { [key: string]: boolean }>\n ) => {\n if ('string' === typeof entry) {\n ret.push(entry)\n } else if ('object' === typeof entry && !Array.isArray(entry) && null !== entry) {\n ret.push(entry)\n } else if (Array.isArray(entry)) {\n entry.forEach((e) => handleEntry(e))\n }\n }\n handleEntry(original)\n handleEntry(additional)\n more.forEach((e) => handleEntry(e))\n return ret\n}\n\nexport function toKebabCase(str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map<string, string>()\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\nexport type EventProp<T extends any[] = any[], F = (...args: T) => void> = F\nexport const EventProp = <T extends any[] = any[]>() => [Function, Array] as PropType<EventProp<T>>\n\nexport const useProxiedModel = <\n Props extends object & {\n [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined\n },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n>(\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v\n) => {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) ||\n vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(\n vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`)\n )\n })\n const model = computed({\n get(): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set(internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => (isControlled.value ? props[prop] : internal.value),\n })\n\n return model\n}\n\nexport const ResourcefulFieldType = [\n 'string',\n 'date',\n 'dateTime',\n 'binary',\n 'number',\n 'integer',\n 'bigint',\n 'unsignedInteger',\n 'boolean',\n] as const\nexport type ResourcefulFieldType = (typeof ResourcefulFieldType)[number]\n\nexport const typeAndFormatToResourcefulFieldType = (\n type: string,\n format: string | undefined\n): ResourcefulFieldType => {\n // types will be from one of the primitive types found here:\n // https://spec.openapis.org/oas/v3.0.0.html#dataTypeFormat\n switch (type) {\n case 'boolean':\n return 'boolean' as const\n case 'integer': {\n switch (format) {\n case 'int32':\n return 'integer' as const\n case 'int64':\n return 'bigint' as const\n default:\n return 'unsignedInteger' as const\n }\n }\n case 'string': {\n switch (format) {\n case 'date':\n return 'date' as const\n case 'date-time':\n return 'dateTime' as const\n case 'binary':\n return 'binary' as const\n default:\n return 'string' as const\n }\n }\n case 'number':\n return 'number' as const\n default:\n return 'string' as const\n }\n}\n\n/**\n * Options for {@link usePassthroughHook} that control when and how a fallback is executed\n * and how the produced handler is scheduled.\n *\n * The passthrough hook builds an invoker for a given event that respects component props\n * (onX prop handlers), attribute listeners, and optional \"callOnX\" hook arrays before\n * falling back to your own handler. These options allow you to customize that behavior.\n *\n * @typeParam P - Tuple of the event argument types\n * @property fallback Optional function called when there are no bound handlers and no\n * registered call-on hooks for the event. Receives the original\n * event arguments. May be async.\n * @property debounceMs If set (> 0), the produced handler will be debounced by the given\n * milliseconds.\n * @property throttleMs If set (> 0), the produced handler will be throttled by the given\n * milliseconds.\n * @property immediate Controls when the produced handler runs when neither debounce nor\n * throttle is used:\n * - undefined (default): run on the next Vue tick (nextTick)\n * - false: run synchronously in the current tick\n * - true: run as a microtask (queueMicrotask)\n */\nexport type UsePassthroughHookOptions<P extends any[]> = {\n fallback?: (...args: P) => void | Promise<void>\n debounceMs?: number\n throttleMs?: number\n immediate?: boolean\n}\n\n/**\n * Builds an event invoker that respects component-bound handlers and hook arrays\n * before calling a fallback.\n *\n * This composable makes it easy to implement events that can be handled via:\n * - Prop/attribute handlers (onEventName in camelCase or kebab-case)\n * - Optional \"callOnEventName\" hook arrays defined on component props\n * - A provided fallback function when nothing else is registered\n *\n * The returned function mirrors the event's argument signature. You can also\n * debounce or throttle the produced handler, and control its scheduling\n * (microtask, next tick, or immediate) via {@link UsePassthroughHookOptions}.\n *\n * Event name lookup supports both camel and kebab notations for handlers, e.g.:\n * - update:modelValue → onUpdateModelValue (camel) and onUpdate:modelValue (kebab)\n * - item:selected → onItemSelected (camel) and onItem:selected (kebab)\n *\n * @typeParam Props - Component props type including potential onX handlers and callOnX arrays\n * @typeParam Events - Map of event names to their function signatures\n * @typeParam E - Concrete event name (key of Events)\n * @typeParam P - Tuple of the event argument types (derived from Events[E])\n * @param event Event name (e.g., 'update:modelValue')\n * @param emit Vue emit function used when a handler is present\n * @param callOnKey Name of the prop key that may contain hook array(s), like 'callOnSaving'\n * @param props Component props object (checked for onX handlers and callOn arrays)\n * @param attrs Component attrs object (checked for onX handlers passed via attributes)\n * @param options Behavior controls for fallback and scheduling\n * @returns A function with signature (...args: P) => Promise\\<void\\> | void to invoke the event\n */\nexport const usePassthroughHook = <\n Props extends {\n [key: string]: (...args: any[]) => any\n },\n Events extends {\n [key: string]: (...args: any[]) => any\n },\n E extends Extract<keyof Events, string>,\n P extends any[] = Parameters<Events[E]>,\n>(\n event: E,\n emit: (...args: any[]) => void,\n callOnKey: Extract<keyof Props, `callOn${string}`> | undefined | null,\n props: Props,\n attrs: Record<string, unknown>,\n options: UsePassthroughHookOptions<P> = {}\n) => {\n if (\n 'number' === typeof options.debounceMs &&\n 'number' === typeof options.throttleMs &&\n options.debounceMs > 0 &&\n options.throttleMs > 0\n ) {\n warn('usePassthroughHook: debounceMs and throttleMs are both set.')\n }\n const { camel, kebab } = getCamelAndMaybeKebabPropKeysFor(event) as {\n camel: any\n kebab: any\n }\n const doHook = async (...args: P) => {\n // if the `on${event}` props are set to functions, emit as normal\n if (\n 'function' === typeof props[camel] ||\n 'function' === typeof props[kebab] ||\n 'function' === typeof attrs[camel] ||\n 'function' === typeof attrs[kebab]\n ) {\n emit(event, ...args)\n return\n }\n // if there are `callOn${event}` hooks, do not run the fallback\n if ('string' !== typeof callOnKey || !(callOnKey in props)) return\n const callOns = props[callOnKey] as any\n if (Array.isArray(callOns) && callOns.length > 0) {\n return\n }\n const fallback = options.fallback ?? (() => {})\n await fallback(...args)\n }\n let callHook = doHook\n if ('number' === typeof options.debounceMs && options.debounceMs > 0) {\n callHook = debounce(callHook, options.debounceMs) as unknown as typeof doHook\n }\n if ('number' === typeof options.throttleMs && options.throttleMs > 0) {\n callHook = throttle(callHook, options.throttleMs) as unknown as typeof doHook\n }\n switch (true) {\n case 'undefined' === typeof options.immediate:\n callHook = async (...args: P) => {\n await nextTick()\n return await doHook(...args)\n }\n break\n\n case options.immediate:\n callHook = async (...args: P) => {\n return await new Promise<void>((rslv) => {\n queueMicrotask(() => doHook(...args).then(rslv))\n })\n }\n break\n }\n return callHook\n}\n"],"names":["isObject","value","magicSplit","spaceSplit","getPartsAndIndexes","string","splitRegex","result","matches","lastWordEndIndex","match","word","prefix","tail","splitAndPrefix","options","keepSpecialCharacters","keep","normalString","hasSpaces","partsAndIndexes","_part","i","foundPrefix","part","capitaliseWord","firstLetterIndex","camelCase","index","kebabCase","propsFactory","props","source","defaults","obj","prop","definition","emitsFactory","validators","getCamelAndMaybeKebabPropKeysFor","key","camelPropKey","p","maybeKebabPropKey","propsAndEmitsFactory","emits","makeEmits","propsAndDefaultsFactory","factory","getDefaultsForPropFactory","getDefaultExportFromCjs","x","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","len","args","Item","array","noop","name","dir","browserExports","process$1","makeMap","str","map2","val","EMPTY_OBJ","NOOP","isOn","extend","remove","arr","el","hasOwnProperty$1","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isPromise","objectToString","toRawType","isPlainObject","isIntegerKey","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","capitalize","toHandlerKey","hasChanged","oldValue","toNumber","n","_globalThis","getGlobalThis","global","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","isRef$1","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","warn$2","msg","activeEffectScope","EffectScope","detached","l","currentEffectScope","fromParent","last","effectScope","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","prev","removeDep","refreshComputed","computed2","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","raw","toRaw","isShallow","toReactive","shallowReadArray","arrayInstrumentations","iterator","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self2","method","wrapValue","iter","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","acc","isProxy","isNonTrackableKeys","builtInSymbols","hasOwnProperty","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","isRef","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","toReadonly","done","createReadonlyMethod","createInstrumentations","readonly2","shallow","instrumentations","rawKey","has","callback","observed","get","checkIdentityKeys","hadItems","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","targetType","existingProxy","proxy","isReactive","r","ref","createRef","shallowRef","rawValue","RefImpl","useDirectValue","unref","ref2","toValue","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","newVal","GetterRefImpl","_getter","toRef","defaultValue","ComputedRefImpl","setter","isSSR","computed$1","getterOrOptions","debugOptions","getter","cRef","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch$1","cb","immediate","deep","once","scheduler","augmentJob","call","warnInvalidSource","s","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","stack","pushWarningContext","vnode","popWarningContext","isWarning","warn$1","instance","appWarnHandler","trace","getComponentTrace","callWithErrorHandling","a","_b","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","parentInstance","logs","entry","formatTraceEntry","recurseCount","postfix","isRoot","open","close","formatProps","keys","formatProp","assertNumber","ErrorTypeStrings$1","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","info","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","RECURSION_LIMIT","nextTick","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPostFlushCbs","deduped","b","checkRecursiveUpdates","check","count","componentName","getComponentName","isHmrUpdating","hmrDirtyComponents","tryWrap","createRecord","rerender","reload","map","initialDef","normalizeClassComponent","component","isClassComponent","newRender","record","newComp","updateComponentDef","instances","oldComp","dirtyInstances","arg","devtools$1","buffer","setDevtoolsHook$1","hook","event","newHook","currentRenderingInstance","currentScopeId","withDirectives","directives","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","mountToTarget","targetAnchor","prepareAnchor","updateCssVars","queuePostRenderEffect","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","targetNode","Teleport","isDisabled","ctx","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getCurrentInstance","getTransitionRawChildren","findNonCommentChild","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","hasFound","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook2","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","remove2","vnode2","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","useId","onDeactivated","registerKeepAliveHook","currentInstance","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","reset","setCurrentInstance","apiName","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","COMPONENTS","DIRECTIVES","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveAsset","resolveDirective","warnMissing","maybeSelfReference","Component","selfName","resolve","extra","registry","currentApp","provide","provides","parentProvides","inject","treatDefaultAsFactory","internalObjectProto","isInternalObject","queueEffectWithSuspense","ch1","ch2","c1","c2","cloneIfMounted","Text","ssrContextKey","useSSRContext","watchEffect","effect2","doWatch","watch","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","isSuspense","suspense","isVNode","createVNodeWithArgsTransform","_createVNode","normalizeKey","normalizeRef","ref3","ref_key","ref_for","createBaseVNode","patchFlag","dynamicProps","isBlockNode","needFullChildrenNormalization","normalizeChildren","createVNode","cloned","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","transition","mergedProps","mergeProps","deepCloneVNode","createTextVNode","text","flag","slot","toMerge","existing","incoming","internalSetCurrentInstance","g","registerGlobalSetter","setters","set","classifyRE","classify","includeInferred","inferFromRegistry","computed","h","propsOrChildren","initCustomFormatter","vueStyle","numberStyle","stringStyle","keywordStyle","formatter","genRefFlag","formatValue","formatInstance","blocks","createInstanceBlock","extractKeys","asRaw","Comp","extracted","isKeyOfType","opts","m","warn","initDev","__typeError","__accessCheck","member","__privateGet","__privateAdd","__privateSet","_arr","_pointer","getNestedValue","path","fallback","deepEqual","getObjectValueByPath","getPropertyFromItem","property","value2","createRange","length","k","convertToUnit","unit","num","proto","refElement","keyValues","pick","paths","found","pickWithRest","exclude","rest","omit","clone","onRE","bubblingEvents","compositionIgnoreKeys","isComposingIgnoreKey","filterInputAttrs","attrs","events","inputEvents","rootAttrs","inputAttrs","wrapInArray","debounce","delay","timeoutId","throttle","limit","throttling","clamp","min","max","padEnd","char","chunk","size","chunked","mergeDeep","arrayFn","out","sourceProperty","targetProperty","flattenFragments","nodes","toKebabCase","kebab","findChildrenWithProvide","CircularBuffer","destructComputed","refs","base","includes","eventName","propName","EventProp","hasEvent","callEvent","handler","focusableChildren","filterByTabIndex","targets","getNextElement","elements","location","condition","_el","idx","inc","focusChild","_c","_d","focusable","isEmpty","matchesSelector","selector","IN_BROWSER","ensureValidVNode","vnodes","defer","isClickInsideElement","targetDiv","mouseX","mouseY","divRect","divLeft","divTop","divRight","divBottom","templateRef","checkPrintable","isPrintableChar","noModifier","isPrimitive","escapeForRegex","sign","camelizeProps","onlyDefinedProps","booleanAttributes","message","vm","getCurrentInstance$1","getCurrentInstanceName","stripUndefinedValuesFromObject","generated","asAbsInt","makeIdentifier","unprefixedLength","glue","unprefixed","encode","getOxfordizedListParts","items","toUnreactive","stripped","isNotEmpty","resolved","useFocus","isFocused","focusClasses","focus","blur","useSlot","extractTextFromVNode","slotContent","getStringOrVNodeAsString","input","mergeClasses","original","additional","more","handleEntry","useProxiedModel","transformIn","transformOut","internal","kebabProp","isControlled","model","externalValue","internalValue","ResourcefulFieldType","typeAndFormatToResourcefulFieldType","format","usePassthroughHook","emit","callOnKey","camel","doHook","callOns","callHook","rslv"],"mappings":";;AAKO,MAAMA,KAAW,CAACC,MAChB,OAAOA,KAAU,YAAYA,MAAU,QAAQ,CAAC,MAAM,QAAQA,CAAK,GCD/DC,KAAa,4GACbC,KAAa;AAInB,SAASC,GAAmBC,GAAQC,GAAY;AACnD,QAAMC,IAAS,EAAE,OAAO,CAAA,GAAI,UAAU,CAAA,EAAE,GAClCC,IAAUH,EAAO,SAASC,CAAU;AAC1C,MAAIG,IAAmB;AACvB,aAAWC,KAASF,GAAS;AACzB,QAAI,OAAOE,EAAM,SAAU;AACvB;AACJ,UAAMC,IAAOD,EAAM,CAAC;AACpB,IAAAH,EAAO,MAAM,KAAKI,CAAI;AACtB,UAAMC,IAASP,EAAO,MAAMI,GAAkBC,EAAM,KAAK,EAAE,KAAI;AAC/D,IAAAH,EAAO,SAAS,KAAKK,CAAM,GAC3BH,IAAmBC,EAAM,QAAQC,EAAK;AAAA,EAC1C;AACA,QAAME,IAAOR,EAAO,MAAMI,CAAgB,EAAE,KAAI;AAChD,SAAII,MACAN,EAAO,MAAM,KAAK,EAAE,GACpBA,EAAO,SAAS,KAAKM,CAAI,IAEtBN;AACX;AAMO,SAASO,GAAeT,GAAQU,GAAS;AAC5C,QAAM,EAAE,uBAAAC,IAAwB,IAAO,MAAAC,GAAM,QAAAL,IAAS,GAAE,IAAKG,KAAW,CAAA,GAClEG,IAAeb,EAAO,KAAI,EAAG,UAAU,KAAK,GAC5Cc,IAAYD,EAAa,SAAS,GAAG,GAErCE,IAAkBhB,GAAmBc,GAD7BC,IAAYhB,KAAaD,EACuB;AAC9D,SAAOkB,EAAgB,MAClB,IAAI,CAACC,GAAOC,MAAM;AACnB,QAAIC,IAAcH,EAAgB,SAASE,CAAC,KAAK,IAC7CE,IAAOH;AAgBX,WAfIL,MAA0B,OACtBC,MACAO,IAAOA,EACF,UAAU,KAAK,EACf,QAAQ,IAAI,OAAO,iBAAiBP,EAAK,KAAK,EAAE,CAAC,KAAK,GAAG,GAAG,EAAE,IAElEA,MACDO,IAAOA,EAAK,UAAU,KAAK,EAAE,QAAQ,oBAAoB,EAAE,GAC3DD,IAAc,MAGlBN,KAAQM,MACRA,IAAcA,EAAY,QAAQ,IAAI,OAAO,KAAKN,EAAK,KAAK,EAAE,CAAC,KAAK,GAAG,GAAG,EAAE,IAG5EK,MAAM,IAECC,IAAcC,IAErB,CAACD,KAAe,CAACC,IACV,KACNL,KAKD,CAACI,KAAeX,EAAO,MAAM,IAAI,IAG1B,MAAMY,KANLD,KAAeX,KAAUY;AAAA,EASzC,CAAC,EACI,OAAO,OAAO;AACvB;AAKO,SAASC,GAAepB,GAAQ;AACnC,QAAMK,IAAQL,EAAO,SAASH,EAAU,EAAE,KAAI,EAAG,OAC3CwB,IAAmBhB,IAAQA,EAAM,QAAQ;AAC/C,SAAQL,EAAO,MAAM,GAAGqB,IAAmB,CAAC,EAAE,YAAW,IACrDrB,EAAO,MAAMqB,IAAmB,CAAC,EAAE,YAAW;AACtD;AC7EO,SAASC,GAAUtB,GAAQU,GAAS;AACvC,SAAOD,GAAeT,GAAQU,CAAO,EAAE,OAAO,CAACR,GAAQI,GAAMiB,MAClDA,MAAU,KAAK,EAAEjB,EAAK,CAAC,KAAK,IAAI,MAAMT,EAAU,IACjDK,IAASI,EAAK,YAAW,IACzBJ,IAASkB,GAAed,CAAI,GACnC,EAAE;AACT;AAwCO,SAASkB,GAAUxB,GAAQU,GAAS;AACvC,SAAOD,GAAeT,GAAQ,EAAE,GAAGU,GAAS,QAAQ,IAAG,CAAE,EACpD,KAAK,EAAE,EACP,YAAW;AACpB;AC9DA,SAASe,GAAaC,GAAOC,GAAQ;AACnC,SAAO,CAACC,MACC,OAAO,KAAKF,CAAK,EAAE,OAAO,CAACG,GAAKC,MAAS;AAE9C,UAAMC,IADqB,OAAOL,EAAMI,CAAI,KAAM,YAAYJ,EAAMI,CAAI,KAAK,QAAQ,CAAC,MAAM,QAAQJ,EAAMI,CAAI,CAAC,IACvEJ,EAAMI,CAAI,IAAI,EAAE,MAAMJ,EAAMI,CAAI,EAAC;AACzE,WAAIF,KAAYE,KAAQF,IACtBC,EAAIC,CAAI,IAAI;AAAA,MACV,GAAGC;AAAA,MACH,SAASH,EAASE,CAAI;AAAA,IAChC,IAEQD,EAAIC,CAAI,IAAIC,GAEVJ,KAAU,CAACE,EAAIC,CAAI,EAAE,WACvBD,EAAIC,CAAI,EAAE,SAASH,IAEdE;AAAA,EACT,GAAG,CAAA,CAAE;AAET;ACsHO,MAAMG,KAAe,CAA2BC,MAE9CA,GAGIC,KAAmC,CAACC,MAAkD;AACjG,QAAMC,IAAeD,EAClB,MAAM,GAAG,EACT,IAAI,CAACE,GAAGpB,MAAiBK,GAAVL,MAAM,IAAc,CAAC,MAAMoB,CAAC,EAAE,KAAK,GAAG,IAAeA,CAAd,CAAiB,EACvE,KAAK,GAAG,GACLC,IAAoBH,EACvB,MAAM,GAAG,EACT,IAAI,CAACE,GAAGpB,MAAOA,MAAM,IAAIK,GAAU,CAAC,MAAMe,CAAC,EAAE,KAAK,GAAG,CAAC,IAAIb,GAAUa,CAAC,CAAE,EACvE,KAAK,GAAG;AACX,SAAO,EAAE,OAAOD,GAAc,OAAOE,EAAA;AACvC,GAgEaC,KAAuB,CAIlCb,GACAc,GACAb,MAIG;AACH,QAAMc,IAAYT,GAAaQ,CAAK;AACpC,aAAWL,KAAOK,GAAO;AACvB,UAAM,EAAE,OAAOJ,GAAc,OAAOE,EAAA,IAAsBJ,GAAiCC,CAAG;AAC9F,IAAoB,OAAOT,EAAMU,CAAY,IAAzC,QAEFV,EAAMU,CAAY,IAAI;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IAAA,IAGO,OAAOV,EAAMY,CAAiB,IAA9C,QAEFZ,EAAMY,CAAiB,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,EAGf;AAEA,SAAO;AAAA,IACL,WAFgBb,GAAaC,GAAmDC,CAAM;AAAA,IAGtF,OAAOc;AAAA,EAAA;AAEX,GAEaC,KAA0B,CACrChB,GACAC,MAC4E;AAC5E,QAAMgB,IAAUlB,GAAaC,GAAOC,CAAM,GACpCC,IAAWgB,GAA0BD,CAAc;AACzD,SAAO,EAAE,SAAAA,GAAS,UAAAf,EAAA;AACpB;ACnQA,SAASiB,GAAyBC,GAAG;AACpC,SAAOA,KAAKA,EAAE,cAAc,OAAO,UAAU,eAAe,KAAKA,GAAG,SAAS,IAAIA,EAAE,UAAaA;AACjG;AAEA,IAAIC,KAAU,EAAC,SAAS,GAAE,GAGtBC,IAAUD,GAAQ,UAAU,CAAA,GAO5BE,GACAC;AAEJ,SAASC,KAAmB;AACxB,QAAM,IAAI,MAAM,iCAAiC;AACrD;AACA,SAASC,KAAuB;AAC5B,QAAM,IAAI,MAAM,mCAAmC;AACvD;AAAA,CACC,WAAY;AACT,MAAI;AACA,IAAI,OAAO,cAAe,aACtBH,IAAmB,aAEnBA,IAAmBE;AAAA,EAE3B,QAAY;AACR,IAAAF,IAAmBE;AAAA,EACvB;AACA,MAAI;AACA,IAAI,OAAO,gBAAiB,aACxBD,IAAqB,eAErBA,IAAqBE;AAAA,EAE7B,QAAY;AACR,IAAAF,IAAqBE;AAAA,EACzB;AACJ,GAAC;AACD,SAASC,GAAWC,GAAK;AACrB,MAAIL,MAAqB;AAErB,WAAO,WAAWK,GAAK,CAAC;AAG5B,OAAKL,MAAqBE,MAAoB,CAACF,MAAqB;AAChE,WAAAA,IAAmB,YACZ,WAAWK,GAAK,CAAC;AAE5B,MAAI;AAEA,WAAOL,EAAiBK,GAAK,CAAC;AAAA,EAClC,QAAU;AACN,QAAI;AAEA,aAAOL,EAAiB,KAAK,MAAMK,GAAK,CAAC;AAAA,IAC7C,QAAU;AAEN,aAAOL,EAAiB,KAAK,MAAMK,GAAK,CAAC;AAAA,IAC7C;AAAA,EACJ;AAGJ;AACA,SAASC,GAAgBC,GAAQ;AAC7B,MAAIN,MAAuB;AAEvB,WAAO,aAAaM,CAAM;AAG9B,OAAKN,MAAuBE,MAAuB,CAACF,MAAuB;AACvE,WAAAA,IAAqB,cACd,aAAaM,CAAM;AAE9B,MAAI;AAEA,WAAON,EAAmBM,CAAM;AAAA,EACpC,QAAW;AACP,QAAI;AAEA,aAAON,EAAmB,KAAK,MAAMM,CAAM;AAAA,IAC/C,QAAW;AAGP,aAAON,EAAmB,KAAK,MAAMM,CAAM;AAAA,IAC/C;AAAA,EACJ;AAIJ;AACA,IAAIC,IAAQ,CAAA,GACRC,KAAW,IACXC,IACAC,KAAa;AAEjB,SAASC,KAAkB;AACvB,EAAI,CAACH,MAAY,CAACC,OAGlBD,KAAW,IACPC,GAAa,SACbF,IAAQE,GAAa,OAAOF,CAAK,IAEjCG,KAAa,IAEbH,EAAM,UACNK,GAAU;AAElB;AAEA,SAASA,KAAa;AAClB,MAAI,CAAAJ,IAGJ;AAAA,QAAIK,IAAUV,GAAWQ,EAAe;AACxC,IAAAH,KAAW;AAGX,aADIM,IAAMP,EAAM,QACVO,KAAK;AAGP,WAFAL,KAAeF,GACfA,IAAQ,CAAA,GACD,EAAEG,KAAaI;AAClB,QAAIL,MACAA,GAAaC,EAAU,EAAE,IAAG;AAGpC,MAAAA,KAAa,IACbI,IAAMP,EAAM;AAAA,IAChB;AACA,IAAAE,KAAe,MACfD,KAAW,IACXH,GAAgBQ,CAAO;AAAA;AAC3B;AAEAf,EAAQ,WAAW,SAAUM,GAAK;AAC9B,MAAIW,IAAO,IAAI,MAAM,UAAU,SAAS,CAAC;AACzC,MAAI,UAAU,SAAS;AACnB,aAAShD,IAAI,GAAGA,IAAI,UAAU,QAAQA;AAClC,MAAAgD,EAAKhD,IAAI,CAAC,IAAI,UAAUA,CAAC;AAGjCwC,EAAAA,EAAM,KAAK,IAAIS,GAAKZ,GAAKW,CAAI,CAAC,GAC1BR,EAAM,WAAW,KAAK,CAACC,MACvBL,GAAWS,EAAU;AAE7B;AAGA,SAASI,GAAKZ,GAAKa,GAAO;AACtB,OAAK,MAAMb,GACX,KAAK,QAAQa;AACjB;AACAD,GAAK,UAAU,MAAM,WAAY;AAC7B,OAAK,IAAI,MAAM,MAAM,KAAK,KAAK;AACnC;AACAlB,EAAQ,QAAQ;AAChBA,EAAQ,UAAU;AAClBA,EAAQ,MAAM,CAAA;AACdA,EAAQ,OAAO,CAAA;AACfA,EAAQ,UAAU;AAClBA,EAAQ,WAAW,CAAA;AAEnB,SAASoB,KAAO;AAAC;AAEjBpB,EAAQ,KAAKoB;AACbpB,EAAQ,cAAcoB;AACtBpB,EAAQ,OAAOoB;AACfpB,EAAQ,MAAMoB;AACdpB,EAAQ,iBAAiBoB;AACzBpB,EAAQ,qBAAqBoB;AAC7BpB,EAAQ,OAAOoB;AACfpB,EAAQ,kBAAkBoB;AAC1BpB,EAAQ,sBAAsBoB;AAE9BpB,EAAQ,YAAY,SAAUqB,GAAM;AAAE,SAAO,CAAA;AAAG;AAEhDrB,EAAQ,UAAU,SAAUqB,GAAM;AAC9B,QAAM,IAAI,MAAM,kCAAkC;AACtD;AAEArB,EAAQ,MAAM,WAAY;AAAE,SAAO;AAAI;AACvCA,EAAQ,QAAQ,SAAUsB,GAAK;AAC3B,QAAM,IAAI,MAAM,gCAAgC;AACpD;AACAtB,EAAQ,QAAQ,WAAW;AAAE,SAAO;AAAG;AAEvC,IAAIuB,KAAiBxB,GAAQ;AACxB,MAACyB,IAAyB,gBAAA3B,GAAwB0B,EAAc;AAAA;ACzLrE,SAASE,GAAQC,GAAK;AACpB,QAAMC,IAAuB,uBAAO,OAAO,IAAI;AAC/C,aAAWxC,KAAOuC,EAAI,MAAM,GAAG,EAAG,CAAAC,EAAKxC,CAAG,IAAI;AAC9C,SAAO,CAACyC,MAAQA,KAAOD;AACzB;AACA,MAAME,KAAe7B,EAAQ,IAAI,aAAa,eAAgB,OAAO,OAAO,CAAA,CAAE,IAAI,CAAA;AAC7DA,EAAQ,IAAI,aAAa,gBAAgB,OAAO,OAAO,CAAA,CAAE;AAC9E,MAAM8B,KAAO,MAAM;AACnB,GAEMC,KAAO,CAAC5C,MAAQA,EAAI,WAAW,CAAC,MAAM,OAAOA,EAAI,WAAW,CAAC,MAAM;AAAA,CACxEA,EAAI,WAAW,CAAC,IAAI,OAAOA,EAAI,WAAW,CAAC,IAAI,KAE1C6C,KAAS,OAAO,QAChBC,KAAS,CAACC,GAAKC,MAAO;AAC1B,QAAMlE,IAAIiE,EAAI,QAAQC,CAAE;AACxB,EAAIlE,IAAI,MACNiE,EAAI,OAAOjE,GAAG,CAAC;AAEnB,GACMmE,KAAmB,OAAO,UAAU,gBACpCC,KAAS,CAACT,GAAKzC,MAAQiD,GAAiB,KAAKR,GAAKzC,CAAG,GACrDmD,IAAU,MAAM,SAChBC,KAAQ,CAACX,MAAQY,GAAaZ,CAAG,MAAM,gBACvCa,KAAQ,CAACb,MAAQY,GAAaZ,CAAG,MAAM,gBACvCc,IAAa,CAACd,MAAQ,OAAOA,KAAQ,YACrCe,IAAW,CAACf,MAAQ,OAAOA,KAAQ,UACnCgB,KAAW,CAAChB,MAAQ,OAAOA,KAAQ,UACnCjF,IAAW,CAACiF,MAAQA,MAAQ,QAAQ,OAAOA,KAAQ,UACnDiB,KAAY,CAACjB,OACTjF,EAASiF,CAAG,KAAKc,EAAWd,CAAG,MAAMc,EAAWd,EAAI,IAAI,KAAKc,EAAWd,EAAI,KAAK,GAErFkB,KAAiB,OAAO,UAAU,UAClCN,KAAe,CAAC5F,MAAUkG,GAAe,KAAKlG,CAAK,GACnDmG,KAAY,CAACnG,MACV4F,GAAa5F,CAAK,EAAE,MAAM,GAAG,EAAE,GAElCoG,KAAgB,CAACpB,MAAQY,GAAaZ,CAAG,MAAM,mBAC/CqB,KAAe,CAAC9D,MAAQwD,EAASxD,CAAG,KAAKA,MAAQ,SAASA,EAAI,CAAC,MAAM,OAAO,KAAK,SAASA,GAAK,EAAE,MAAMA,GAQvG+D,KAAsB,CAACC,MAAO;AAClC,QAAMC,IAAwB,uBAAO,OAAO,IAAI;AAChD,SAAO,CAAC1B,MACM0B,EAAM1B,CAAG,MACN0B,EAAM1B,CAAG,IAAIyB,EAAGzB,CAAG;AAEtC,GACM2B,KAAa,UACbC,KAAWJ;AAAA,EACf,CAACxB,MACQA,EAAI,QAAQ2B,IAAY,CAACE,GAAGC,MAAMA,IAAIA,EAAE,YAAW,IAAK,EAAE;AAErE,GAKMC,KAAaP,GAAoB,CAACxB,MAC/BA,EAAI,OAAO,CAAC,EAAE,YAAW,IAAKA,EAAI,MAAM,CAAC,CACjD,GACKgC,KAAeR;AAAA,EACnB,CAACxB,MACWA,IAAM,KAAK+B,GAAW/B,CAAG,CAAC,KAAK;AAG7C,GACMiC,KAAa,CAAC/G,GAAOgH,MAAa,CAAC,OAAO,GAAGhH,GAAOgH,CAAQ,GAkB5DC,KAAW,CAACjC,MAAQ;AACxB,QAAMkC,IAAInB,EAASf,CAAG,IAAI,OAAOA,CAAG,IAAI;AACxC,SAAO,MAAMkC,CAAC,IAAIlC,IAAMkC;AAC1B;AACA,IAAIC;AACJ,MAAMC,KAAgB,MACbD,OAAgBA,KAAc,OAAO,aAAe,MAAc,aAAa,OAAO,OAAS,MAAc,OAAO,OAAO,SAAW,MAAc,SAAS,OAAOE,KAAW,MAAcA,KAAS;AAE/M,SAASC,GAAetH,GAAO;AAC7B,MAAI0F,EAAQ1F,CAAK,GAAG;AAClB,UAAMuH,IAAM,CAAA;AACZ,aAASlG,IAAI,GAAGA,IAAIrB,EAAM,QAAQqB,KAAK;AACrC,YAAMmG,IAAOxH,EAAMqB,CAAC,GACdoG,IAAa1B,EAASyB,CAAI,IAAIE,GAAiBF,CAAI,IAAIF,GAAeE,CAAI;AAChF,UAAIC;AACF,mBAAWlF,KAAOkF;AAChB,UAAAF,EAAIhF,CAAG,IAAIkF,EAAWlF,CAAG;AAAA,IAG/B;AACA,WAAOgF;AAAA,EACT,WAAWxB,EAAS/F,CAAK,KAAKD,EAASC,CAAK;AAC1C,WAAOA;AAEX;AACA,MAAM2H,KAAkB,iBAClBC,KAAsB,WACtBC,KAAiB;AACvB,SAASH,GAAiBI,GAAS;AACjC,QAAMC,IAAM,CAAA;AACZ,SAAAD,EAAQ,QAAQD,IAAgB,EAAE,EAAE,MAAMF,EAAe,EAAE,QAAQ,CAACH,MAAS;AAC3E,QAAIA,GAAM;AACR,YAAMQ,IAAMR,EAAK,MAAMI,EAAmB;AAC1C,MAAAI,EAAI,SAAS,MAAMD,EAAIC,EAAI,CAAC,EAAE,KAAI,CAAE,IAAIA,EAAI,CAAC,EAAE,KAAI;AAAA,IACrD;AAAA,EACF,CAAC,GACMD;AACT;AACA,SAASE,GAAejI,GAAO;AAC7B,MAAIuH,IAAM;AACV,MAAIxB,EAAS/F,CAAK;AAChB,IAAAuH,IAAMvH;AAAA,WACG0F,EAAQ1F,CAAK;AACtB,aAASqB,IAAI,GAAGA,IAAIrB,EAAM,QAAQqB,KAAK;AACrC,YAAMoG,IAAaQ,GAAejI,EAAMqB,CAAC,CAAC;AAC1C,MAAIoG,MACFF,KAAOE,IAAa;AAAA,IAExB;AAAA,WACS1H,EAASC,CAAK;AACvB,eAAWyE,KAAQzE;AACjB,MAAIA,EAAMyE,CAAI,MACZ8C,KAAO9C,IAAO;AAIpB,SAAO8C,EAAI,KAAI;AACjB;AAMA,MAAMW,KAAU,CAAClD,MACR,CAAC,EAAEA,KAAOA,EAAI,cAAiB,KAElCmD,KAAkB,CAACnD,MAChBe,EAASf,CAAG,IAAIA,IAAMA,KAAO,OAAO,KAAKU,EAAQV,CAAG,KAAKjF,EAASiF,CAAG,MAAMA,EAAI,aAAakB,MAAkB,CAACJ,EAAWd,EAAI,QAAQ,KAAKkD,GAAQlD,CAAG,IAAImD,GAAgBnD,EAAI,KAAK,IAAI,KAAK,UAAUA,GAAKoD,IAAU,CAAC,IAAI,OAAOpD,CAAG,GAEvOoD,KAAW,CAACC,GAAMrD,MAClBkD,GAAQlD,CAAG,IACNoD,GAASC,GAAMrD,EAAI,KAAK,IACtBW,GAAMX,CAAG,IACX;AAAA,EACL,CAAC,OAAOA,EAAI,IAAI,GAAG,GAAG,CAAC,GAAGA,EAAI,QAAO,CAAE,EAAE;AAAA,IACvC,CAACsD,GAAS,CAAC/F,GAAKgG,CAAI,GAAG,OACrBD,EAAQE,GAAgBjG,GAAK,CAAC,IAAI,KAAK,IAAIgG,GACpCD;AAAA,IAET,CAAA;AAAA,EACR;AACA,IACazC,GAAMb,CAAG,IACX;AAAA,EACL,CAAC,OAAOA,EAAI,IAAI,GAAG,GAAG,CAAC,GAAGA,EAAI,OAAM,CAAE,EAAE,IAAI,CAACyD,MAAMD,GAAgBC,CAAC,CAAC;AAC3E,IACazC,GAAShB,CAAG,IACdwD,GAAgBxD,CAAG,IACjBjF,EAASiF,CAAG,KAAK,CAACU,EAAQV,CAAG,KAAK,CAACoB,GAAcpB,CAAG,IACtD,OAAOA,CAAG,IAEZA,GAEHwD,KAAkB,CAACC,GAAGpH,IAAI,OAAO;AACrC,MAAIqH;AACJ;AAAA;AAAA;AAAA,IAGE1C,GAASyC,CAAC,IAAI,WAAWC,IAAKD,EAAE,gBAAgB,OAAOC,IAAKrH,CAAC,MAAMoH;AAAA;AAEvE;AAMA,SAASE,EAAOC,MAAQvE,GAAM;AAC5B,UAAQ,KAAK,cAAcuE,CAAG,IAAI,GAAGvE,CAAI;AAC3C;AACA,IAAIwE;AACJ,MAAMC,GAAY;AAAA,EAChB,YAAYC,IAAW,IAAO;AAC5B,SAAK,WAAWA,GAChB,KAAK,UAAU,IACf,KAAK,MAAM,GACX,KAAK,UAAU,CAAA,GACf,KAAK,WAAW,CAAA,GAChB,KAAK,YAAY,IACjB,KAAK,SAASF,GACV,CAACE,KAAYF,MACf,KAAK,SAASA,EAAkB,WAAWA,EAAkB,SAAS,CAAA,IAAK;AAAA,MACzE;AAAA,IACR,IAAU;AAAA,EAER;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EACA,QAAQ;AACN,QAAI,KAAK,SAAS;AAChB,WAAK,YAAY;AACjB,UAAIxH,GAAG2H;AACP,UAAI,KAAK;AACP,aAAK3H,IAAI,GAAG2H,IAAI,KAAK,OAAO,QAAQ3H,IAAI2H,GAAG3H;AACzC,eAAK,OAAOA,CAAC,EAAE,MAAK;AAGxB,WAAKA,IAAI,GAAG2H,IAAI,KAAK,QAAQ,QAAQ3H,IAAI2H,GAAG3H;AAC1C,aAAK,QAAQA,CAAC,EAAE,MAAK;AAAA,IAEzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACP,QAAI,KAAK,WACH,KAAK,WAAW;AAClB,WAAK,YAAY;AACjB,UAAIA,GAAG2H;AACP,UAAI,KAAK;AACP,aAAK3H,IAAI,GAAG2H,IAAI,KAAK,OAAO,QAAQ3H,IAAI2H,GAAG3H;AACzC,eAAK,OAAOA,CAAC,EAAE,OAAM;AAGzB,WAAKA,IAAI,GAAG2H,IAAI,KAAK,QAAQ,QAAQ3H,IAAI2H,GAAG3H;AAC1C,aAAK,QAAQA,CAAC,EAAE,OAAM;AAAA,IAE1B;AAAA,EAEJ;AAAA,EACA,IAAIkF,GAAI;AACN,QAAI,KAAK,SAAS;AAChB,YAAM0C,IAAqBJ;AAC3B,UAAI;AACF,eAAAA,IAAoB,MACbtC,EAAE;AAAA,MACX,UAAC;AACC,QAAAsC,IAAoBI;AAAA,MACtB;AAAA,IACF,MAAO,CAAO7F,EAAQ,IAAI,aAAa,gBACrCuF,EAAO,sCAAsC;AAAA,EAEjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK;AACH,IAAI,EAAE,KAAK,QAAQ,MACjB,KAAK,YAAYE,GACjBA,IAAoB;AAAA,EAExB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM;AACJ,IAAI,KAAK,MAAM,KAAK,EAAE,KAAK,QAAQ,MACjCA,IAAoB,KAAK,WACzB,KAAK,YAAY;AAAA,EAErB;AAAA,EACA,KAAKK,GAAY;AACf,QAAI,KAAK,SAAS;AAChB,WAAK,UAAU;AACf,UAAI7H,GAAG2H;AACP,WAAK3H,IAAI,GAAG2H,IAAI,KAAK,QAAQ,QAAQ3H,IAAI2H,GAAG3H;AAC1C,aAAK,QAAQA,CAAC,EAAE,KAAI;AAGtB,WADA,KAAK,QAAQ,SAAS,GACjBA,IAAI,GAAG2H,IAAI,KAAK,SAAS,QAAQ3H,IAAI2H,GAAG3H;AAC3C,aAAK,SAASA,CAAC,EAAC;AAGlB,UADA,KAAK,SAAS,SAAS,GACnB,KAAK,QAAQ;AACf,aAAKA,IAAI,GAAG2H,IAAI,KAAK,OAAO,QAAQ3H,IAAI2H,GAAG3H;AACzC,eAAK,OAAOA,CAAC,EAAE,KAAK,EAAI;AAE1B,aAAK,OAAO,SAAS;AAAA,MACvB;AACA,UAAI,CAAC,KAAK,YAAY,KAAK,UAAU,CAAC6H,GAAY;AAChD,cAAMC,IAAO,KAAK,OAAO,OAAO,IAAG;AACnC,QAAIA,KAAQA,MAAS,SACnB,KAAK,OAAO,OAAO,KAAK,KAAK,IAAIA,GACjCA,EAAK,QAAQ,KAAK;AAAA,MAEtB;AACA,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AACF;AACA,SAASC,GAAYL,GAAU;AAC7B,SAAO,IAAID,GAAYC,CAAQ;AACjC;AACA,SAASM,KAAkB;AACzB,SAAOR;AACT;AACA,SAASS,GAAe/C,GAAIgD,IAAe,IAAO;AAChD,EAAIV,IACFA,EAAkB,SAAS,KAAKtC,CAAE,IACtBnD,EAAQ,IAAI,aAAa,gBAAiB,CAACmG,KACvDZ;AAAA,IACE;AAAA,EACN;AAEA;AACA,IAAIa;AACJ,MAAMC,KAAqC,oBAAI,QAAO;AACtD,MAAMC,GAAe;AAAA,EACnB,YAAYnD,GAAI;AACd,SAAK,KAAKA,GACV,KAAK,OAAO,QACZ,KAAK,WAAW,QAChB,KAAK,QAAQ,GACb,KAAK,OAAO,QACZ,KAAK,UAAU,QACf,KAAK,YAAY,QACbsC,KAAqBA,EAAkB,UACzCA,EAAkB,QAAQ,KAAK,IAAI;AAAA,EAEvC;AAAA,EACA,QAAQ;AACN,SAAK,SAAS;AAAA,EAChB;AAAA,EACA,SAAS;AACP,IAAI,KAAK,QAAQ,OACf,KAAK,SAAS,KACVY,GAAmB,IAAI,IAAI,MAC7BA,GAAmB,OAAO,IAAI,GAC9B,KAAK,QAAO;AAAA,EAGlB;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACP,IAAI,KAAK,QAAQ,KAAK,EAAE,KAAK,QAAQ,OAG/B,KAAK,QAAQ,KACjBE,GAAM,IAAI;AAAA,EAEd;AAAA,EACA,MAAM;AACJ,QAAI,EAAE,KAAK,QAAQ;AACjB,aAAO,KAAK,GAAE;AAEhB,SAAK,SAAS,GACdC,GAAc,IAAI,GAClBC,GAAY,IAAI;AAChB,UAAMC,IAAaN,GACbO,IAAkBC;AACxB,IAAAR,IAAY,MACZQ,IAAc;AACd,QAAI;AACF,aAAO,KAAK,GAAE;AAAA,IAChB,UAAC;AACC,MAAO5G,EAAQ,IAAI,aAAa,gBAAiBoG,MAAc,QAC7Db;AAAA,QACE;AAAA,MACV,GAEMsB,GAAY,IAAI,GAChBT,IAAYM,GACZE,IAAcD,GACd,KAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA,EACA,OAAO;AACL,QAAI,KAAK,QAAQ,GAAG;AAClB,eAASG,IAAO,KAAK,MAAMA,GAAMA,IAAOA,EAAK;AAC3C,QAAAC,GAAUD,CAAI;AAEhB,WAAK,OAAO,KAAK,WAAW,QAC5BN,GAAc,IAAI,GAClB,KAAK,UAAU,KAAK,OAAM,GAC1B,KAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA,EACA,UAAU;AACR,IAAI,KAAK,QAAQ,KACfH,GAAmB,IAAI,IAAI,IAClB,KAAK,YACd,KAAK,UAAS,IAEd,KAAK,WAAU;AAAA,EAEnB;AAAA;AAAA;AAAA;AAAA,EAIA,aAAa;AACX,IAAIW,GAAQ,IAAI,KACd,KAAK,IAAG;AAAA,EAEZ;AAAA,EACA,IAAI,QAAQ;AACV,WAAOA,GAAQ,IAAI;AAAA,EACrB;AACF;AACA,IAAIC,KAAa,GACbC,IACAC;AACJ,SAASZ,GAAMa,GAAKC,IAAa,IAAO;AAEtC,MADAD,EAAI,SAAS,GACTC,GAAY;AACd,IAAAD,EAAI,OAAOD,IACXA,KAAkBC;AAClB;AAAA,EACF;AACA,EAAAA,EAAI,OAAOF,IACXA,KAAaE;AACf;AACA,SAASE,KAAa;AACpB,EAAAL;AACF;AACA,SAASM,KAAW;AAClB,MAAI,EAAEN,KAAa;AACjB;AAEF,MAAIE,IAAiB;AACnB,QAAIK,IAAIL;AAER,SADAA,KAAkB,QACXK,KAAG;AACR,YAAMC,IAAOD,EAAE;AACf,MAAAA,EAAE,OAAO,QACTA,EAAE,SAAS,IACXA,IAAIC;AAAA,IACN;AAAA,EACF;AACA,MAAIC;AACJ,SAAOR,MAAY;AACjB,QAAIM,IAAIN;AAER,SADAA,KAAa,QACNM,KAAG;AACR,YAAMC,IAAOD,EAAE;AAGf,UAFAA,EAAE,OAAO,QACTA,EAAE,SAAS,IACPA,EAAE,QAAQ;AACZ,YAAI;AAEF,UAAAA,EAAE,QAAO;AAAA,QACX,SAASG,GAAK;AACZ,UAAKD,MAAOA,IAAQC;AAAA,QACtB;AAEF,MAAAH,IAAIC;AAAA,IACN;AAAA,EACF;AACA,MAAIC,EAAO,OAAMA;AACnB;AACA,SAASjB,GAAYW,GAAK;AACxB,WAASN,IAAOM,EAAI,MAAMN,GAAMA,IAAOA,EAAK;AAC1C,IAAAA,EAAK,UAAU,IACfA,EAAK,iBAAiBA,EAAK,IAAI,YAC/BA,EAAK,IAAI,aAAaA;AAE1B;AACA,SAASD,GAAYO,GAAK;AACxB,MAAIQ,GACApK,IAAO4J,EAAI,UACXN,IAAOtJ;AACX,SAAOsJ,KAAM;AACX,UAAMe,IAAOf,EAAK;AAClB,IAAIA,EAAK,YAAY,MACfA,MAAStJ,MAAMA,IAAOqK,IAC1Bd,GAAUD,CAAI,GACdgB,GAAUhB,CAAI,KAEdc,IAAOd,GAETA,EAAK,IAAI,aAAaA,EAAK,gBAC3BA,EAAK,iBAAiB,QACtBA,IAAOe;AAAA,EACT;AACA,EAAAT,EAAI,OAAOQ,GACXR,EAAI,WAAW5J;AACjB;AACA,SAASwJ,GAAQI,GAAK;AACpB,WAASN,IAAOM,EAAI,MAAMN,GAAMA,IAAOA,EAAK;AAC1C,QAAIA,EAAK,IAAI,YAAYA,EAAK,WAAWA,EAAK,IAAI,aAAaiB,GAAgBjB,EAAK,IAAI,QAAQ,KAAKA,EAAK,IAAI,YAAYA,EAAK;AAC7H,aAAO;AAGX,SAAI,EAAAM,EAAI;AAIV;AACA,SAASW,GAAgBC,GAAW;AASlC,MARIA,EAAU,QAAQ,KAAK,EAAEA,EAAU,QAAQ,QAG/CA,EAAU,SAAS,KACfA,EAAU,kBAAkBC,QAGhCD,EAAU,gBAAgBC,IACtB,CAACD,EAAU,SAASA,EAAU,QAAQ,QAAQ,CAACA,EAAU,QAAQ,CAACA,EAAU,UAAU,CAAChB,GAAQgB,CAAS;AAC1G;AAEF,EAAAA,EAAU,SAAS;AACnB,QAAME,IAAMF,EAAU,KAChBG,IAAU/B,GACVO,IAAkBC;AACxB,EAAAR,IAAY4B,GACZpB,IAAc;AACd,MAAI;AACF,IAAAH,GAAYuB,CAAS;AACrB,UAAMpL,IAAQoL,EAAU,GAAGA,EAAU,MAAM;AAC3C,KAAIE,EAAI,YAAY,KAAKvE,GAAW/G,GAAOoL,EAAU,MAAM,OACzDA,EAAU,SAAS,KACnBA,EAAU,SAASpL,GACnBsL,EAAI;AAAA,EAER,SAASP,GAAK;AACZ,UAAAO,EAAI,WACEP;AAAA,EACR,UAAC;AACC,IAAAvB,IAAY+B,GACZvB,IAAcD,GACdE,GAAYmB,CAAS,GACrBA,EAAU,SAAS;AAAA,EACrB;AACF;AACA,SAASjB,GAAUD,GAAMsB,IAAO,IAAO;AACrC,QAAM,EAAE,KAAAF,GAAK,SAAAC,GAAS,SAAAE,EAAO,IAAKvB;AAYlC,MAXIqB,MACFA,EAAQ,UAAUE,GAClBvB,EAAK,UAAU,SAEbuB,MACFA,EAAQ,UAAUF,GAClBrB,EAAK,UAAU,SAEV9G,EAAQ,IAAI,aAAa,gBAAiBkI,EAAI,aAAapB,MAChEoB,EAAI,WAAWG,IAEbH,EAAI,SAASpB,MACfoB,EAAI,OAAOC,GACP,CAACA,KAAWD,EAAI,WAAU;AAC5B,IAAAA,EAAI,SAAS,SAAS;AACtB,aAAStC,IAAIsC,EAAI,SAAS,MAAMtC,GAAGA,IAAIA,EAAE;AACvC,MAAAmB,GAAUnB,GAAG,EAAI;AAAA,EAErB;AAEF,EAAI,CAACwC,KAAQ,CAAC,EAAEF,EAAI,MAAMA,EAAI,OAC5BA,EAAI,IAAI,OAAOA,EAAI,GAAG;AAE1B;AACA,SAASJ,GAAUhB,GAAM;AACvB,QAAM,EAAE,SAAAwB,GAAS,SAAAC,EAAO,IAAKzB;AAC7B,EAAIwB,MACFA,EAAQ,UAAUC,GAClBzB,EAAK,UAAU,SAEbyB,MACFA,EAAQ,UAAUD,GAClBxB,EAAK,UAAU;AAEnB;AACA,IAAIF,IAAc;AAClB,MAAM4B,KAAa,CAAA;AACnB,SAASC,KAAgB;AACvB,EAAAD,GAAW,KAAK5B,CAAW,GAC3BA,IAAc;AAChB;AACA,SAAS8B,KAAgB;AACvB,QAAM3C,IAAOyC,GAAW,IAAG;AAC3B,EAAA5B,IAAcb,MAAS,SAAS,KAAOA;AACzC;AACA,SAASS,GAAc,GAAG;AACxB,QAAM,EAAE,SAAAmC,EAAO,IAAK;AAEpB,MADA,EAAE,UAAU,QACRA,GAAS;AACX,UAAMR,IAAU/B;AAChB,IAAAA,IAAY;AACZ,QAAI;AACF,MAAAuC,EAAO;AAAA,IACT,UAAC;AACC,MAAAvC,IAAY+B;AAAA,IACd;AAAA,EACF;AACF;AACA,IAAIF,KAAgB;AACpB,MAAMW,GAAK;AAAA,EACT,YAAYxB,GAAKc,GAAK;AACpB,SAAK,MAAMd,GACX,KAAK,MAAMc,GACX,KAAK,UAAUA,EAAI,SACnB,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,iBAAiB;AAAA,EACpF;AACF;AACA,MAAMW,GAAI;AAAA,EACR,YAAYb,GAAW;AACrB,SAAK,WAAWA,GAChB,KAAK,UAAU,GACf,KAAK,aAAa,QAClB,KAAK,OAAO,QACZ,KAAK,MAAM,QACX,KAAK,MAAM,QACX,KAAK,KAAK,GACHhI,EAAQ,IAAI,aAAa,iBAC9B,KAAK,WAAW;AAAA,EAEpB;AAAA,EACA,MAAM8I,GAAW;AACf,QAAI,CAAC1C,KAAa,CAACQ,KAAeR,MAAc,KAAK;AACnD;AAEF,QAAIU,IAAO,KAAK;AAChB,QAAIA,MAAS,UAAUA,EAAK,QAAQV;AAClC,MAAAU,IAAO,KAAK,aAAa,IAAI8B,GAAKxC,GAAW,IAAI,GAC5CA,EAAU,QAGbU,EAAK,UAAUV,EAAU,UACzBA,EAAU,SAAS,UAAUU,GAC7BV,EAAU,WAAWU,KAJrBV,EAAU,OAAOA,EAAU,WAAWU,GAMxCiC,GAAOjC,CAAI;AAAA,aACFA,EAAK,YAAY,OAC1BA,EAAK,UAAU,KAAK,SAChBA,EAAK,UAAS;AAChB,YAAMW,IAAOX,EAAK;AAClB,MAAAW,EAAK,UAAUX,EAAK,SAChBA,EAAK,YACPA,EAAK,QAAQ,UAAUW,IAEzBX,EAAK,UAAUV,EAAU,UACzBU,EAAK,UAAU,QACfV,EAAU,SAAS,UAAUU,GAC7BV,EAAU,WAAWU,GACjBV,EAAU,SAASU,MACrBV,EAAU,OAAOqB;AAAA,IAErB;AAEF,WAAOzH,EAAQ,IAAI,aAAa,gBAAiBoG,EAAU,WACzDA,EAAU;AAAA,MACRpE;AAAA,QACE;AAAA,UACE,QAAQoE;AAAA,QACpB;AAAA,QACU0C;AAAA,MACV;AAAA,IACA,GAEWhC;AAAA,EACT;AAAA,EACA,QAAQgC,GAAW;AACjB,SAAK,WACLb,MACA,KAAK,OAAOa,CAAS;AAAA,EACvB;AAAA,EACA,OAAOA,GAAW;AAChB,IAAAxB,GAAU;AACV,QAAI;AACF,UAAOtH,EAAQ,IAAI,aAAa;AAC9B,iBAAS4H,IAAO,KAAK,UAAUA,GAAMA,IAAOA,EAAK;AAC/C,UAAIA,EAAK,IAAI,aAAa,EAAEA,EAAK,IAAI,QAAQ,MAC3CA,EAAK,IAAI;AAAA,YACP5F;AAAA,cACE;AAAA,gBACE,QAAQ4F,EAAK;AAAA,cAC/B;AAAA,cACgBkB;AAAA,YAChB;AAAA,UACA;AAIM,eAAShC,IAAO,KAAK,MAAMA,GAAMA,IAAOA,EAAK;AAC3C,QAAIA,EAAK,IAAI,YAEXA,EAAK,IAAI,IAAI,OAAM;AAAA,IAGzB,UAAC;AACC,MAAAS,GAAQ;AAAA,IACV;AAAA,EACF;AACF;AACA,SAASwB,GAAOjC,GAAM;AAEpB,MADAA,EAAK,IAAI,MACLA,EAAK,IAAI,QAAQ,GAAG;AACtB,UAAMkB,IAAYlB,EAAK,IAAI;AAC3B,QAAIkB,KAAa,CAAClB,EAAK,IAAI,MAAM;AAC/B,MAAAkB,EAAU,SAAS;AACnB,eAASpC,IAAIoC,EAAU,MAAMpC,GAAGA,IAAIA,EAAE;AACpC,QAAAmD,GAAOnD,CAAC;AAAA,IAEZ;AACA,UAAMoD,IAAclC,EAAK,IAAI;AAC7B,IAAIkC,MAAgBlC,MAClBA,EAAK,UAAUkC,GACXA,MAAaA,EAAY,UAAUlC,KAElC9G,EAAQ,IAAI,aAAa,gBAAiB8G,EAAK,IAAI,aAAa,WACrEA,EAAK,IAAI,WAAWA,IAEtBA,EAAK,IAAI,OAAOA;AAAA,EAClB;AACF;AACA,MAAMmC,KAA4B,oBAAI,QAAO,GACvCC,KAAc;AAAA,EACflJ,EAAQ,IAAI,aAAa,eAAgB,mBAAmB;AACjE,GACMmJ,KAAsB;AAAA,EACvBnJ,EAAQ,IAAI,aAAa,eAAgB,qBAAqB;AACnE,GACMoJ,KAAoB;AAAA,EACrBpJ,EAAQ,IAAI,aAAa,eAAgB,kBAAkB;AAChE;AACA,SAASqJ,EAAMC,GAAQC,GAAMpK,GAAK;AAChC,MAAIyH,KAAeR,GAAW;AAC5B,QAAIoD,IAAUP,GAAU,IAAIK,CAAM;AAClC,IAAKE,KACHP,GAAU,IAAIK,GAAQE,IAA0B,oBAAI,IAAG,CAAE;AAE3D,QAAItB,IAAMsB,EAAQ,IAAIrK,CAAG;AACzB,IAAK+I,MACHsB,EAAQ,IAAIrK,GAAK+I,IAAM,IAAIW,GAAG,CAAE,GAChCX,EAAI,MAAMsB,GACVtB,EAAI,MAAM/I,IAELa,EAAQ,IAAI,aAAa,eAC9BkI,EAAI,MAAM;AAAA,MACR,QAAAoB;AAAA,MACA,MAAAC;AAAA,MACA,KAAApK;AAAA,IACR,CAAO,IAED+I,EAAI,MAAK;AAAA,EAEb;AACF;AACA,SAASuB,GAAQH,GAAQC,GAAMpK,GAAKuK,GAAU9F,GAAU+F,GAAW;AACjE,QAAMH,IAAUP,GAAU,IAAIK,CAAM;AACpC,MAAI,CAACE,GAAS;AACZ,IAAAvB;AACA;AAAA,EACF;AACA,QAAM2B,IAAM,CAAC1B,MAAQ;AACnB,IAAIA,MACKlI,EAAQ,IAAI,aAAa,eAC9BkI,EAAI,QAAQ;AAAA,MACV,QAAAoB;AAAA,MACA,MAAAC;AAAA,MACA,KAAApK;AAAA,MACA,UAAAuK;AAAA,MACA,UAAA9F;AAAA,MACA,WAAA+F;AAAA,IACV,CAAS,IAEDzB,EAAI,QAAO;AAAA,EAGjB;AAEA,MADAZ,GAAU,GACNiC,MAAS;AACX,IAAAC,EAAQ,QAAQI,CAAG;AAAA,OACd;AACL,UAAMC,IAAgBvH,EAAQgH,CAAM,GAC9BQ,IAAeD,KAAiB5G,GAAa9D,CAAG;AACtD,QAAI0K,KAAiB1K,MAAQ,UAAU;AACrC,YAAM4K,IAAY,OAAOL,CAAQ;AACjC,MAAAF,EAAQ,QAAQ,CAACtB,GAAK8B,MAAS;AAC7B,SAAIA,MAAS,YAAYA,MAASZ,MAAqB,CAACxG,GAASoH,CAAI,KAAKA,KAAQD,MAChFH,EAAI1B,CAAG;AAAA,MAEX,CAAC;AAAA,IACH;AAOE,eANI/I,MAAQ,UAAUqK,EAAQ,IAAI,MAAM,MACtCI,EAAIJ,EAAQ,IAAIrK,CAAG,CAAC,GAElB2K,KACFF,EAAIJ,EAAQ,IAAIJ,EAAiB,CAAC,GAE5BG,GAAI;AAAA,QACV,KAAK;AACH,UAAKM,IAKMC,KACTF,EAAIJ,EAAQ,IAAI,QAAQ,CAAC,KALzBI,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,GACxB3G,GAAM+G,CAAM,KACdM,EAAIJ,EAAQ,IAAIL,EAAmB,CAAC;AAKxC;AAAA,QACF,KAAK;AACH,UAAKU,MACHD,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,GACxB3G,GAAM+G,CAAM,KACdM,EAAIJ,EAAQ,IAAIL,EAAmB,CAAC;AAGxC;AAAA,QACF,KAAK;AACH,UAAI5G,GAAM+G,CAAM,KACdM,EAAIJ,EAAQ,IAAIN,EAAW,CAAC;AAE9B;AAAA,MACV;AAAA,EAEE;AACA,EAAA3B,GAAQ;AACV;AACA,SAAS0C,GAAmBC,GAAQ/K,GAAK;AACvC,QAAMgL,IAASlB,GAAU,IAAIiB,CAAM;AACnC,SAAOC,KAAUA,EAAO,IAAIhL,CAAG;AACjC;AACA,SAASiL,GAAkBjJ,GAAO;AAChC,QAAMkJ,IAAMC,EAAMnJ,CAAK;AACvB,SAAIkJ,MAAQlJ,IAAckJ,KAC1BhB,EAAMgB,GAAK,WAAWjB,EAAiB,GAChCmB,EAAUpJ,CAAK,IAAIkJ,IAAMA,EAAI,IAAIG,CAAU;AACpD;AACA,SAASC,GAAiBvI,GAAK;AAC7B,SAAAmH,EAAMnH,IAAMoI,EAAMpI,CAAG,GAAG,WAAWkH,EAAiB,GAC7ClH;AACT;AACA,MAAMwI,KAAwB;AAAA,EAC5B,WAAW;AAAA,EACX,CAAC,OAAO,QAAQ,IAAI;AAClB,WAAOC,GAAS,MAAM,OAAO,UAAUH,CAAU;AAAA,EACnD;AAAA,EACA,UAAUvJ,GAAM;AACd,WAAOmJ,GAAkB,IAAI,EAAE;AAAA,MAC7B,GAAGnJ,EAAK,IAAI,CAACnB,MAAMwC,EAAQxC,CAAC,IAAIsK,GAAkBtK,CAAC,IAAIA,CAAC;AAAA,IAC9D;AAAA,EACE;AAAA,EACA,UAAU;AACR,WAAO6K,GAAS,MAAM,WAAW,CAAC/N,OAChCA,EAAM,CAAC,IAAI4N,EAAW5N,EAAM,CAAC,CAAC,GACvBA,EACR;AAAA,EACH;AAAA,EACA,MAAMuG,GAAIyH,GAAS;AACjB,WAAOC,EAAM,MAAM,SAAS1H,GAAIyH,GAAS,QAAQ,SAAS;AAAA,EAC5D;AAAA,EACA,OAAOzH,GAAIyH,GAAS;AAClB,WAAOC,EAAM,MAAM,UAAU1H,GAAIyH,GAAS,CAACvF,MAAMA,EAAE,IAAImF,CAAU,GAAG,SAAS;AAAA,EAC/E;AAAA,EACA,KAAKrH,GAAIyH,GAAS;AAChB,WAAOC,EAAM,MAAM,QAAQ1H,GAAIyH,GAASJ,GAAY,SAAS;AAAA,EAC/D;AAAA,EACA,UAAUrH,GAAIyH,GAAS;AACrB,WAAOC,EAAM,MAAM,aAAa1H,GAAIyH,GAAS,QAAQ,SAAS;AAAA,EAChE;AAAA,EACA,SAASzH,GAAIyH,GAAS;AACpB,WAAOC,EAAM,MAAM,YAAY1H,GAAIyH,GAASJ,GAAY,SAAS;AAAA,EACnE;AAAA,EACA,cAAcrH,GAAIyH,GAAS;AACzB,WAAOC,EAAM,MAAM,iBAAiB1H,GAAIyH,GAAS,QAAQ,SAAS;AAAA,EACpE;AAAA;AAAA,EAEA,QAAQzH,GAAIyH,GAAS;AACnB,WAAOC,EAAM,MAAM,WAAW1H,GAAIyH,GAAS,QAAQ,SAAS;AAAA,EAC9D;AAAA,EACA,YAAY3J,GAAM;AAChB,WAAO6J,GAAY,MAAM,YAAY7J,CAAI;AAAA,EAC3C;AAAA,EACA,WAAWA,GAAM;AACf,WAAO6J,GAAY,MAAM,WAAW7J,CAAI;AAAA,EAC1C;AAAA,EACA,KAAK8J,GAAW;AACd,WAAOX,GAAkB,IAAI,EAAE,KAAKW,CAAS;AAAA,EAC/C;AAAA;AAAA,EAEA,eAAe9J,GAAM;AACnB,WAAO6J,GAAY,MAAM,eAAe7J,CAAI;AAAA,EAC9C;AAAA,EACA,IAAIkC,GAAIyH,GAAS;AACf,WAAOC,EAAM,MAAM,OAAO1H,GAAIyH,GAAS,QAAQ,SAAS;AAAA,EAC1D;AAAA,EACA,MAAM;AACJ,WAAOI,GAAW,MAAM,KAAK;AAAA,EAC/B;AAAA,EACA,QAAQ/J,GAAM;AACZ,WAAO+J,GAAW,MAAM,QAAQ/J,CAAI;AAAA,EACtC;AAAA,EACA,OAAOkC,MAAOlC,GAAM;AAClB,WAAOgK,GAAO,MAAM,UAAU9H,GAAIlC,CAAI;AAAA,EACxC;AAAA,EACA,YAAYkC,MAAOlC,GAAM;AACvB,WAAOgK,GAAO,MAAM,eAAe9H,GAAIlC,CAAI;AAAA,EAC7C;AAAA,EACA,QAAQ;AACN,WAAO+J,GAAW,MAAM,OAAO;AAAA,EACjC;AAAA;AAAA,EAEA,KAAK7H,GAAIyH,GAAS;AAChB,WAAOC,EAAM,MAAM,QAAQ1H,GAAIyH,GAAS,QAAQ,SAAS;AAAA,EAC3D;AAAA,EACA,UAAU3J,GAAM;AACd,WAAO+J,GAAW,MAAM,UAAU/J,CAAI;AAAA,EACxC;AAAA,EACA,aAAa;AACX,WAAOmJ,GAAkB,IAAI,EAAE,WAAU;AAAA,EAC3C;AAAA,EACA,SAASc,GAAU;AACjB,WAAOd,GAAkB,IAAI,EAAE,SAASc,CAAQ;AAAA,EAClD;AAAA,EACA,aAAajK,GAAM;AACjB,WAAOmJ,GAAkB,IAAI,EAAE,UAAU,GAAGnJ,CAAI;AAAA,EAClD;AAAA,EACA,WAAWA,GAAM;AACf,WAAO+J,GAAW,MAAM,WAAW/J,CAAI;AAAA,EACzC;AAAA,EACA,SAAS;AACP,WAAO0J,GAAS,MAAM,UAAUH,CAAU;AAAA,EAC5C;AACF;AACA,SAASG,GAASQ,GAAOC,GAAQC,GAAW;AAC1C,QAAMnJ,IAAMuI,GAAiBU,CAAK,GAC5BG,IAAOpJ,EAAIkJ,CAAM,EAAC;AACxB,SAAIlJ,MAAQiJ,KAAS,CAACZ,EAAUY,CAAK,MACnCG,EAAK,QAAQA,EAAK,MAClBA,EAAK,OAAO,MAAM;AAChB,UAAMpO,IAASoO,EAAK,MAAK;AACzB,WAAIpO,EAAO,UACTA,EAAO,QAAQmO,EAAUnO,EAAO,KAAK,IAEhCA;AAAA,EACT,IAEKoO;AACT;AACA,MAAMC,KAAa,MAAM;AACzB,SAASV,EAAMM,GAAOC,GAAQjI,GAAIyH,GAASY,GAAcvK,GAAM;AAC7D,QAAMiB,IAAMuI,GAAiBU,CAAK,GAC5BM,IAAYvJ,MAAQiJ,KAAS,CAACZ,EAAUY,CAAK,GAC7CO,IAAWxJ,EAAIkJ,CAAM;AAC3B,MAAIM,MAAaH,GAAWH,CAAM,GAAG;AACnC,UAAMO,IAAUD,EAAS,MAAMP,GAAOlK,CAAI;AAC1C,WAAOwK,IAAYjB,EAAWmB,CAAO,IAAIA;AAAA,EAC3C;AACA,MAAIC,IAAYzI;AAChB,EAAIjB,MAAQiJ,MACNM,IACFG,IAAY,SAASxH,GAAM7F,GAAO;AAChC,WAAO4E,EAAG,KAAK,MAAMqH,EAAWpG,CAAI,GAAG7F,GAAO4M,CAAK;AAAA,EACrD,IACShI,EAAG,SAAS,MACrByI,IAAY,SAASxH,GAAM7F,GAAO;AAChC,WAAO4E,EAAG,KAAK,MAAMiB,GAAM7F,GAAO4M,CAAK;AAAA,EACzC;AAGJ,QAAMjO,IAASwO,EAAS,KAAKxJ,GAAK0J,GAAWhB,CAAO;AACpD,SAAOa,KAAaD,IAAeA,EAAatO,CAAM,IAAIA;AAC5D;AACA,SAAS+N,GAAOE,GAAOC,GAAQjI,GAAIlC,GAAM;AACvC,QAAMiB,IAAMuI,GAAiBU,CAAK;AAClC,MAAIS,IAAYzI;AAChB,SAAIjB,MAAQiJ,MACLZ,EAAUY,CAAK,IAIThI,EAAG,SAAS,MACrByI,IAAY,SAASC,GAAKzH,GAAM7F,GAAO;AACrC,WAAO4E,EAAG,KAAK,MAAM0I,GAAKzH,GAAM7F,GAAO4M,CAAK;AAAA,EAC9C,KANAS,IAAY,SAASC,GAAKzH,GAAM7F,GAAO;AACrC,WAAO4E,EAAG,KAAK,MAAM0I,GAAKrB,EAAWpG,CAAI,GAAG7F,GAAO4M,CAAK;AAAA,EAC1D,IAOGjJ,EAAIkJ,CAAM,EAAEQ,GAAW,GAAG3K,CAAI;AACvC;AACA,SAAS6J,GAAYK,GAAOC,GAAQnK,GAAM;AACxC,QAAMiB,IAAMoI,EAAMa,CAAK;AACvB,EAAA9B,EAAMnH,GAAK,WAAWkH,EAAiB;AACvC,QAAMjF,IAAMjC,EAAIkJ,CAAM,EAAE,GAAGnK,CAAI;AAC/B,UAAKkD,MAAQ,MAAMA,MAAQ,OAAU2H,GAAQ7K,EAAK,CAAC,CAAC,KAClDA,EAAK,CAAC,IAAIqJ,EAAMrJ,EAAK,CAAC,CAAC,GAChBiB,EAAIkJ,CAAM,EAAE,GAAGnK,CAAI,KAErBkD;AACT;AACA,SAAS6G,GAAWG,GAAOC,GAAQnK,IAAO,CAAA,GAAI;AAC5C,EAAAwH,GAAa,GACbnB,GAAU;AACV,QAAMnD,IAAMmG,EAAMa,CAAK,EAAEC,CAAM,EAAE,MAAMD,GAAOlK,CAAI;AAClD,SAAAsG,GAAQ,GACRmB,GAAa,GACNvE;AACT;AACA,MAAM4H,KAAqC,gBAAAtK,GAAQ,6BAA6B,GAC1EuK,KAAiB,IAAI;AAAA,EACT,uBAAO,oBAAoB,MAAM,EAAE,OAAO,CAAC7M,MAAQA,MAAQ,eAAeA,MAAQ,QAAQ,EAAE,IAAI,CAACA,MAAQ,OAAOA,CAAG,CAAC,EAAE,OAAOyD,EAAQ;AACvJ;AACA,SAASqJ,GAAe9M,GAAK;AAC3B,EAAKyD,GAASzD,CAAG,MAAGA,IAAM,OAAOA,CAAG;AACpC,QAAMN,IAAMyL,EAAM,IAAI;AACtB,SAAAjB,EAAMxK,GAAK,OAAOM,CAAG,GACdN,EAAI,eAAeM,CAAG;AAC/B;AACA,MAAM+M,GAAoB;AAAA,EACxB,YAAYC,IAAc,IAAOC,IAAa,IAAO;AACnD,SAAK,cAAcD,GACnB,KAAK,aAAaC;AAAA,EACpB;AAAA,EACA,IAAI9C,GAAQnK,GAAKkN,GAAU;AACzB,QAAIlN,MAAQ,WAAY,QAAOmK,EAAO;AACtC,UAAMgD,IAAc,KAAK,aAAaC,IAAa,KAAK;AACxD,QAAIpN,MAAQ;AACV,aAAO,CAACmN;AACH,QAAInN,MAAQ;AACjB,aAAOmN;AACF,QAAInN,MAAQ;AACjB,aAAOoN;AACF,QAAIpN,MAAQ;AACjB,aAAIkN,OAAcC,IAAcC,IAAaC,KAAqBC,KAAcF,IAAaG,KAAqBC,IAAa,IAAIrD,CAAM;AAAA;AAAA,MAEzI,OAAO,eAAeA,CAAM,MAAM,OAAO,eAAe+C,CAAQ,IACvD/C,IAET;AAEF,UAAMO,IAAgBvH,EAAQgH,CAAM;AACpC,QAAI,CAACgD,GAAa;AAChB,UAAInJ;AACJ,UAAI0G,MAAkB1G,IAAKuH,GAAsBvL,CAAG;AAClD,eAAOgE;AAET,UAAIhE,MAAQ;AACV,eAAO8M;AAAA,IAEX;AACA,UAAM9H,IAAM,QAAQ;AAAA,MAClBmF;AAAA,MACAnK;AAAA;AAAA;AAAA;AAAA,MAIAyN,EAAMtD,CAAM,IAAIA,IAAS+C;AAAA,IAC/B;AAOI,YANIzJ,GAASzD,CAAG,IAAI6M,GAAe,IAAI7M,CAAG,IAAI4M,GAAmB5M,CAAG,OAG/DmN,KACHjD,EAAMC,GAAQ,OAAOnK,CAAG,GAEtBoN,KACKpI,IAELyI,EAAMzI,CAAG,IACJ0F,KAAiB5G,GAAa9D,CAAG,IAAIgF,IAAMA,EAAI,QAEpDxH,EAASwH,CAAG,IACPmI,IAAcO,GAAS1I,CAAG,IAAI2I,GAAS3I,CAAG,IAE5CA;AAAA,EACT;AACF;AACA,MAAM4I,WAA+Bb,GAAoB;AAAA,EACvD,YAAYK,IAAa,IAAO;AAC9B,UAAM,IAAOA,CAAU;AAAA,EACzB;AAAA,EACA,IAAIjD,GAAQnK,GAAKvC,GAAOyP,GAAU;AAChC,QAAIzI,IAAW0F,EAAOnK,CAAG;AACzB,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM6N,IAAqBC,GAAWrJ,CAAQ;AAK9C,UAJI,CAAC2G,EAAU3N,CAAK,KAAK,CAACqQ,GAAWrQ,CAAK,MACxCgH,IAAW0G,EAAM1G,CAAQ,GACzBhH,IAAQ0N,EAAM1N,CAAK,IAEjB,CAAC0F,EAAQgH,CAAM,KAAKsD,EAAMhJ,CAAQ,KAAK,CAACgJ,EAAMhQ,CAAK;AACrD,eAAIoQ,IACK,MAEPpJ,EAAS,QAAQhH,GACV;AAAA,IAGb;AACA,UAAMsQ,IAAS5K,EAAQgH,CAAM,KAAKrG,GAAa9D,CAAG,IAAI,OAAOA,CAAG,IAAImK,EAAO,SAASjH,GAAOiH,GAAQnK,CAAG,GAChGjC,IAAS,QAAQ;AAAA,MACrBoM;AAAA,MACAnK;AAAA,MACAvC;AAAA,MACAgQ,EAAMtD,CAAM,IAAIA,IAAS+C;AAAA,IAC/B;AACI,WAAI/C,MAAWgB,EAAM+B,CAAQ,MACtBa,IAEMvJ,GAAW/G,GAAOgH,CAAQ,KACnC6F,GAAQH,GAAQ,OAAOnK,GAAKvC,GAAOgH,CAAQ,IAF3C6F,GAAQH,GAAQ,OAAOnK,GAAKvC,CAAK,IAK9BM;AAAA,EACT;AAAA,EACA,eAAeoM,GAAQnK,GAAK;AAC1B,UAAM+N,IAAS7K,GAAOiH,GAAQnK,CAAG,GAC3ByE,IAAW0F,EAAOnK,CAAG,GACrBjC,IAAS,QAAQ,eAAeoM,GAAQnK,CAAG;AACjD,WAAIjC,KAAUgQ,KACZzD,GAAQH,GAAQ,UAAUnK,GAAK,QAAQyE,CAAQ,GAE1C1G;AAAA,EACT;AAAA,EACA,IAAIoM,GAAQnK,GAAK;AACf,UAAMjC,IAAS,QAAQ,IAAIoM,GAAQnK,CAAG;AACtC,YAAI,CAACyD,GAASzD,CAAG,KAAK,CAAC6M,GAAe,IAAI7M,CAAG,MAC3CkK,EAAMC,GAAQ,OAAOnK,CAAG,GAEnBjC;AAAA,EACT;AAAA,EACA,QAAQoM,GAAQ;AACd,WAAAD;AAAA,MACEC;AAAA,MACA;AAAA,MACAhH,EAAQgH,CAAM,IAAI,WAAWJ;AAAA,IACnC,GACW,QAAQ,QAAQI,CAAM;AAAA,EAC/B;AACF;AACA,MAAM6D,WAAgCjB,GAAoB;AAAA,EACxD,YAAYK,IAAa,IAAO;AAC9B,UAAM,IAAMA,CAAU;AAAA,EACxB;AAAA,EACA,IAAIjD,GAAQnK,GAAK;AACf,WAAOa,EAAQ,IAAI,aAAa,gBAC9BuF;AAAA,MACE,yBAAyB,OAAOpG,CAAG,CAAC;AAAA,MACpCmK;AAAA,IACR,GAEW;AAAA,EACT;AAAA,EACA,eAAeA,GAAQnK,GAAK;AAC1B,WAAOa,EAAQ,IAAI,aAAa,gBAC9BuF;AAAA,MACE,4BAA4B,OAAOpG,CAAG,CAAC;AAAA,MACvCmK;AAAA,IACR,GAEW;AAAA,EACT;AACF;AACA,MAAM8D,KAAkC,oBAAIL,GAAsB,GAC5DM,KAAmC,oBAAIF,GAAuB,GAG9DG,KAAY,CAAC1Q,MAAUA,GACvB2Q,KAAW,CAAClI,MAAM,QAAQ,eAAeA,CAAC;AAChD,SAASmI,GAAqBpC,GAAQkB,GAAaC,GAAY;AAC7D,SAAO,YAAYtL,GAAM;AACvB,UAAMqI,IAAS,KAAK,SACdmE,IAAYnD,EAAMhB,CAAM,GACxBoE,IAAcnL,GAAMkL,CAAS,GAC7BE,IAASvC,MAAW,aAAaA,MAAW,OAAO,YAAYsC,GAC/DE,IAAYxC,MAAW,UAAUsC,GACjCG,IAAgBvE,EAAO8B,CAAM,EAAE,GAAGnK,CAAI,GACtC6M,IAAOvB,IAAae,KAAYhB,IAAcyB,KAAavD;AACjE,YAAC8B,KAAejD;AAAA,MACdoE;AAAA,MACA;AAAA,MACAG,IAAYzE,KAAsBD;AAAA,IACxC,GACW;AAAA;AAAA,MAEL,OAAO;AACL,cAAM,EAAE,OAAAtM,GAAO,MAAAoR,MAASH,EAAc,KAAI;AAC1C,eAAOG,IAAO,EAAE,OAAApR,GAAO,MAAAoR,MAAS;AAAA,UAC9B,OAAOL,IAAS,CAACG,EAAKlR,EAAM,CAAC,CAAC,GAAGkR,EAAKlR,EAAM,CAAC,CAAC,CAAC,IAAIkR,EAAKlR,CAAK;AAAA,UAC7D,MAAAoR;AAAA,QACV;AAAA,MACM;AAAA;AAAA,MAEA,CAAC,OAAO,QAAQ,IAAI;AAClB,eAAO;AAAA,MACT;AAAA,IACN;AAAA,EACE;AACF;AACA,SAASC,GAAqB1E,GAAM;AAClC,SAAO,YAAYtI,GAAM;AACvB,QAAOjB,EAAQ,IAAI,aAAa,cAAe;AAC7C,YAAMb,IAAM8B,EAAK,CAAC,IAAI,WAAWA,EAAK,CAAC,CAAC,OAAO;AAC/C,MAAAsE;AAAA,QACE,GAAG9B,GAAW8F,CAAI,CAAC,cAAcpK,CAAG;AAAA,QACpCmL,EAAM,IAAI;AAAA,MAClB;AAAA,IACI;AACA,WAAOf,MAAS,WAAW,KAAQA,MAAS,UAAU,SAAS;AAAA,EACjE;AACF;AACA,SAAS2E,GAAuBC,GAAWC,GAAS;AAClD,QAAMC,IAAmB;AAAA,IACvB,IAAIlP,GAAK;AACP,YAAMmK,IAAS,KAAK,SACdmE,IAAYnD,EAAMhB,CAAM,GACxBgF,IAAShE,EAAMnL,CAAG;AACxB,MAAKgP,MACCxK,GAAWxE,GAAKmP,CAAM,KACxBjF,EAAMoE,GAAW,OAAOtO,CAAG,GAE7BkK,EAAMoE,GAAW,OAAOa,CAAM;AAEhC,YAAM,EAAE,KAAAC,EAAG,IAAKhB,GAASE,CAAS,GAC5BK,IAAOM,IAAUd,KAAYa,IAAYJ,KAAavD;AAC5D,UAAI+D,EAAI,KAAKd,GAAWtO,CAAG;AACzB,eAAO2O,EAAKxE,EAAO,IAAInK,CAAG,CAAC;AACtB,UAAIoP,EAAI,KAAKd,GAAWa,CAAM;AACnC,eAAOR,EAAKxE,EAAO,IAAIgF,CAAM,CAAC;AACzB,MAAIhF,MAAWmE,KACpBnE,EAAO,IAAInK,CAAG;AAAA,IAElB;AAAA,IACA,IAAI,OAAO;AACT,YAAMmK,IAAS,KAAK;AACpB,cAAC6E,KAAa9E,EAAMiB,EAAMhB,CAAM,GAAG,WAAWJ,EAAW,GAClD,QAAQ,IAAII,GAAQ,QAAQA,CAAM;AAAA,IAC3C;AAAA,IACA,IAAInK,GAAK;AACP,YAAMmK,IAAS,KAAK,SACdmE,IAAYnD,EAAMhB,CAAM,GACxBgF,IAAShE,EAAMnL,CAAG;AACxB,aAAKgP,MACCxK,GAAWxE,GAAKmP,CAAM,KACxBjF,EAAMoE,GAAW,OAAOtO,CAAG,GAE7BkK,EAAMoE,GAAW,OAAOa,CAAM,IAEzBnP,MAAQmP,IAAShF,EAAO,IAAInK,CAAG,IAAImK,EAAO,IAAInK,CAAG,KAAKmK,EAAO,IAAIgF,CAAM;AAAA,IAChF;AAAA,IACA,QAAQE,GAAU5D,GAAS;AACzB,YAAM6D,IAAW,MACXnF,IAASmF,EAAS,SAClBhB,IAAYnD,EAAMhB,CAAM,GACxBwE,IAAOM,IAAUd,KAAYa,IAAYJ,KAAavD;AAC5D,cAAC2D,KAAa9E,EAAMoE,GAAW,WAAWvE,EAAW,GAC9CI,EAAO,QAAQ,CAAC1M,GAAOuC,MACrBqP,EAAS,KAAK5D,GAASkD,EAAKlR,CAAK,GAAGkR,EAAK3O,CAAG,GAAGsP,CAAQ,CAC/D;AAAA,IACH;AAAA,EACJ;AACE,SAAAzM;AAAA,IACEqM;AAAA,IACAF,IAAY;AAAA,MACV,KAAKF,GAAqB,KAAK;AAAA,MAC/B,KAAKA,GAAqB,KAAK;AAAA,MAC/B,QAAQA,GAAqB,QAAQ;AAAA,MACrC,OAAOA,GAAqB,OAAO;AAAA,IACzC,IAAQ;AAAA,MACF,IAAIrR,GAAO;AACT,QAAI,CAACwR,KAAW,CAAC7D,EAAU3N,CAAK,KAAK,CAACqQ,GAAWrQ,CAAK,MACpDA,IAAQ0N,EAAM1N,CAAK;AAErB,cAAM0M,IAASgB,EAAM,IAAI;AAGzB,eAFciD,GAASjE,CAAM,EACR,IAAI,KAAKA,GAAQ1M,CAAK,MAEzC0M,EAAO,IAAI1M,CAAK,GAChB6M,GAAQH,GAAQ,OAAO1M,GAAOA,CAAK,IAE9B;AAAA,MACT;AAAA,MACA,IAAIuC,GAAKvC,GAAO;AACd,QAAI,CAACwR,KAAW,CAAC7D,EAAU3N,CAAK,KAAK,CAACqQ,GAAWrQ,CAAK,MACpDA,IAAQ0N,EAAM1N,CAAK;AAErB,cAAM0M,IAASgB,EAAM,IAAI,GACnB,EAAE,KAAAiE,GAAK,KAAAG,MAAQnB,GAASjE,CAAM;AACpC,YAAI4D,IAASqB,EAAI,KAAKjF,GAAQnK,CAAG;AACjC,QAAK+N,IAGSlN,EAAQ,IAAI,aAAa,gBACrC2O,GAAkBrF,GAAQiF,GAAKpP,CAAG,KAHlCA,IAAMmL,EAAMnL,CAAG,GACf+N,IAASqB,EAAI,KAAKjF,GAAQnK,CAAG;AAI/B,cAAMyE,IAAW8K,EAAI,KAAKpF,GAAQnK,CAAG;AACrC,eAAAmK,EAAO,IAAInK,GAAKvC,CAAK,GAChBsQ,IAEMvJ,GAAW/G,GAAOgH,CAAQ,KACnC6F,GAAQH,GAAQ,OAAOnK,GAAKvC,GAAOgH,CAAQ,IAF3C6F,GAAQH,GAAQ,OAAOnK,GAAKvC,CAAK,GAI5B;AAAA,MACT;AAAA,MACA,OAAOuC,GAAK;AACV,cAAMmK,IAASgB,EAAM,IAAI,GACnB,EAAE,KAAAiE,GAAK,KAAAG,MAAQnB,GAASjE,CAAM;AACpC,YAAI4D,IAASqB,EAAI,KAAKjF,GAAQnK,CAAG;AACjC,QAAK+N,IAGSlN,EAAQ,IAAI,aAAa,gBACrC2O,GAAkBrF,GAAQiF,GAAKpP,CAAG,KAHlCA,IAAMmL,EAAMnL,CAAG,GACf+N,IAASqB,EAAI,KAAKjF,GAAQnK,CAAG;AAI/B,cAAMyE,IAAW8K,IAAMA,EAAI,KAAKpF,GAAQnK,CAAG,IAAI,QACzCjC,IAASoM,EAAO,OAAOnK,CAAG;AAChC,eAAI+N,KACFzD,GAAQH,GAAQ,UAAUnK,GAAK,QAAQyE,CAAQ,GAE1C1G;AAAA,MACT;AAAA,MACA,QAAQ;AACN,cAAMoM,IAASgB,EAAM,IAAI,GACnBsE,IAAWtF,EAAO,SAAS,GAC3BK,IAAe3J,EAAQ,IAAI,aAAa,eAAgBuC,GAAM+G,CAAM,IAAI,IAAI,IAAIA,CAAM,IAAI,IAAI,IAAIA,CAAM,IAAI,QAC5GpM,IAASoM,EAAO,MAAK;AAC3B,eAAIsF,KACFnF;AAAA,UACEH;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACAK;AAAA,QACZ,GAEezM;AAAA,MACT;AAAA,IACN;AAAA,EACA,GAC0B;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACX,EACkB,QAAQ,CAACkO,MAAW;AAClC,IAAAiD,EAAiBjD,CAAM,IAAIoC,GAAqBpC,GAAQ+C,GAAWC,CAAO;AAAA,EAC5E,CAAC,GACMC;AACT;AACA,SAASQ,GAA4BvC,GAAa8B,GAAS;AACzD,QAAMC,IAAmBH,GAAuB5B,GAAa8B,CAAO;AACpE,SAAO,CAAC9E,GAAQnK,GAAKkN,MACflN,MAAQ,mBACH,CAACmN,IACCnN,MAAQ,mBACVmN,IACEnN,MAAQ,YACVmK,IAEF,QAAQ;AAAA,IACbjH,GAAOgM,GAAkBlP,CAAG,KAAKA,KAAOmK,IAAS+E,IAAmB/E;AAAA,IACpEnK;AAAA,IACAkN;AAAA,EACN;AAEA;AACA,MAAMyC,KAA4B;AAAA,EAChC,KAAqB,gBAAAD,GAA4B,IAAO,EAAK;AAC/D,GAIME,KAA6B;AAAA,EACjC,KAAqB,gBAAAF,GAA4B,IAAM,EAAK;AAC9D;AAIA,SAASF,GAAkBrF,GAAQiF,GAAKpP,GAAK;AAC3C,QAAMmP,IAAShE,EAAMnL,CAAG;AACxB,MAAImP,MAAWnP,KAAOoP,EAAI,KAAKjF,GAAQgF,CAAM,GAAG;AAC9C,UAAM/E,IAAOxG,GAAUuG,CAAM;AAC7B,IAAA/D;AAAA,MACE,YAAYgE,CAAI,kEAAkEA,MAAS,QAAQ,aAAa,EAAE;AAAA,IACxH;AAAA,EACE;AACF;AACA,MAAMoD,KAA8B,oBAAI,QAAO,GACzCD,KAAqC,oBAAI,QAAO,GAChDD,KAA8B,oBAAI,QAAO,GACzCD,KAAqC,oBAAI,QAAO;AACtD,SAASwC,GAAcC,GAAS;AAC9B,UAAQA,GAAO;AAAA,IACb,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACb;AACA;AACA,SAASC,GAActS,GAAO;AAC5B,SAAOA,EAAM,YAAe,CAAC,OAAO,aAAaA,CAAK,IAAI,IAAIoS,GAAcjM,GAAUnG,CAAK,CAAC;AAC9F;AACA,SAASkQ,GAASxD,GAAQ;AACxB,SAAI2D,GAAW3D,CAAM,IACZA,IAEF6F;AAAA,IACL7F;AAAA,IACA;AAAA,IACA8D;AAAA,IACA0B;AAAA,IACAnC;AAAA,EACJ;AACA;AAUA,SAASE,GAASvD,GAAQ;AACxB,SAAO6F;AAAA,IACL7F;AAAA,IACA;AAAA,IACA+D;AAAA,IACA0B;AAAA,IACAtC;AAAA,EACJ;AACA;AAUA,SAAS0C,GAAqB7F,GAAQgD,GAAa8C,GAAcC,GAAoBC,GAAU;AAC7F,MAAI,CAAC3S,EAAS2M,CAAM;AAClB,WAAOtJ,EAAQ,IAAI,aAAa,gBAC9BuF;AAAA,MACE,wBAAwB+G,IAAc,aAAa,UAAU,KAAK;AAAA,QAChEhD;AAAA,MACV,CAAS;AAAA,IACT,GAEWA;AAET,MAAIA,EAAO,WAAc,EAAEgD,KAAehD,EAAO;AAC/C,WAAOA;AAET,QAAMiG,IAAaL,GAAc5F,CAAM;AACvC,MAAIiG,MAAe;AACjB,WAAOjG;AAET,QAAMkG,IAAgBF,EAAS,IAAIhG,CAAM;AACzC,MAAIkG;AACF,WAAOA;AAET,QAAMC,IAAQ,IAAI;AAAA,IAChBnG;AAAA,IACAiG,MAAe,IAAIF,IAAqBD;AAAA,EAC5C;AACE,SAAAE,EAAS,IAAIhG,GAAQmG,CAAK,GACnBA;AACT;AACA,SAASC,GAAW9S,GAAO;AACzB,SAAIqQ,GAAWrQ,CAAK,IACX8S,GAAW9S,EAAM,OAAU,IAE7B,CAAC,EAAEA,KAASA,EAAM;AAC3B;AACA,SAASqQ,GAAWrQ,GAAO;AACzB,SAAO,CAAC,EAAEA,KAASA,EAAM;AAC3B;AACA,SAAS2N,EAAU3N,GAAO;AACxB,SAAO,CAAC,EAAEA,KAASA,EAAM;AAC3B;AACA,SAASkP,GAAQlP,GAAO;AACtB,SAAOA,IAAQ,CAAC,CAACA,EAAM,UAAa;AACtC;AACA,SAAS0N,EAAMmE,GAAU;AACvB,QAAMpE,IAAMoE,KAAYA,EAAS;AACjC,SAAOpE,IAAMC,EAAMD,CAAG,IAAIoE;AAC5B;AAOA,MAAMjE,IAAa,CAAC5N,MAAUD,EAASC,CAAK,IAAIkQ,GAASlQ,CAAK,IAAIA,GAC5DmR,KAAa,CAACnR,MAAUD,EAASC,CAAK,IAAIiQ,GAASjQ,CAAK,IAAIA;AAClE,SAASgQ,EAAM+C,GAAG;AAChB,SAAOA,IAAIA,EAAE,cAAiB,KAAO;AACvC;AACA,SAASC,GAAIhT,GAAO;AAClB,SAAOiT,GAAUjT,GAAO,EAAK;AAC/B;AACA,SAASkT,GAAWlT,GAAO;AACzB,SAAOiT,GAAUjT,GAAO,EAAI;AAC9B;AACA,SAASiT,GAAUE,GAAU3B,GAAS;AACpC,SAAIxB,EAAMmD,CAAQ,IACTA,IAEF,IAAIC,GAAQD,GAAU3B,CAAO;AACtC;AACA,MAAM4B,GAAQ;AAAA,EACZ,YAAYpT,GAAO2P,GAAY;AAC7B,SAAK,MAAM,IAAI1D,GAAG,GAClB,KAAK,YAAe,IACpB,KAAK,gBAAmB,IACxB,KAAK,YAAY0D,IAAa3P,IAAQ0N,EAAM1N,CAAK,GACjD,KAAK,SAAS2P,IAAa3P,IAAQ4N,EAAW5N,CAAK,GACnD,KAAK,gBAAmB2P;AAAA,EAC1B;AAAA,EACA,IAAI,QAAQ;AACV,WAAOvM,EAAQ,IAAI,aAAa,eAC9B,KAAK,IAAI,MAAM;AAAA,MACb,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,IACb,CAAO,IAED,KAAK,IAAI,MAAK,GAET,KAAK;AAAA,EACd;AAAA,EACA,IAAI,MAAM0J,GAAU;AAClB,UAAM9F,IAAW,KAAK,WAChBqM,IAAiB,KAAK,iBAAoB1F,EAAUb,CAAQ,KAAKuD,GAAWvD,CAAQ;AAC1F,IAAAA,IAAWuG,IAAiBvG,IAAWY,EAAMZ,CAAQ,GACjD/F,GAAW+F,GAAU9F,CAAQ,MAC/B,KAAK,YAAY8F,GACjB,KAAK,SAASuG,IAAiBvG,IAAWc,EAAWd,CAAQ,GACtD1J,EAAQ,IAAI,aAAa,eAC9B,KAAK,IAAI,QAAQ;AAAA,MACf,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,MACL,UAAA0J;AAAA,MACA,UAAA9F;AAAA,IACV,CAAS,IAED,KAAK,IAAI,QAAO;AAAA,EAGtB;AACF;AACA,SAASsM,GAAMC,GAAM;AACnB,SAAOvD,EAAMuD,CAAI,IAAIA,EAAK,QAAQA;AACpC;AACA,SAASC,GAAQzR,GAAQ;AACvB,SAAO+D,EAAW/D,CAAM,IAAIA,EAAM,IAAKuR,GAAMvR,CAAM;AACrD;AAgBA,SAAS0R,GAAOnG,GAAQ;AACtB,EAAOlK,EAAQ,IAAI,aAAa,gBAAiB,CAAC8L,GAAQ5B,CAAM,KAC9D3E,EAAO,8DAA8D;AAEvE,QAAMZ,IAAMrC,EAAQ4H,CAAM,IAAI,IAAI,MAAMA,EAAO,MAAM,IAAI,CAAA;AACzD,aAAW/K,KAAO+K;AAChB,IAAAvF,EAAIxF,CAAG,IAAImR,GAAcpG,GAAQ/K,CAAG;AAEtC,SAAOwF;AACT;AACA,MAAM4L,GAAc;AAAA,EAClB,YAAYC,GAASvL,GAAMwL,GAAe;AACxC,SAAK,UAAUD,GACf,KAAK,OAAOvL,GACZ,KAAK,gBAAgBwL,GACrB,KAAK,YAAe,IACpB,KAAK,SAAS;AAAA,EAChB;AAAA,EACA,IAAI,QAAQ;AACV,UAAM7O,IAAM,KAAK,QAAQ,KAAK,IAAI;AAClC,WAAO,KAAK,SAASA,MAAQ,SAAS,KAAK,gBAAgBA;AAAA,EAC7D;AAAA,EACA,IAAI,MAAM8O,GAAQ;AAChB,SAAK,QAAQ,KAAK,IAAI,IAAIA;AAAA,EAC5B;AAAA,EACA,IAAI,MAAM;AACR,WAAOzG,GAAmBK,EAAM,KAAK,OAAO,GAAG,KAAK,IAAI;AAAA,EAC1D;AACF;AACA,MAAMqG,GAAc;AAAA,EAClB,YAAYC,GAAS;AACnB,SAAK,UAAUA,GACf,KAAK,YAAe,IACpB,KAAK,iBAAoB,IACzB,KAAK,SAAS;AAAA,EAChB;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,SAAS,KAAK,QAAO;AAAA,EACnC;AACF;AACA,SAASC,GAAMlS,GAAQQ,GAAK2R,GAAc;AACxC,SAAIlE,EAAMjO,CAAM,IACPA,IACE+D,EAAW/D,CAAM,IACnB,IAAIgS,GAAchS,CAAM,IACtBhC,EAASgC,CAAM,KAAK,UAAU,SAAS,IACzC2R,GAAc3R,GAAQQ,GAAK2R,CAAY,IAEvClB,GAAIjR,CAAM;AAErB;AACA,SAAS2R,GAAc3R,GAAQQ,GAAK2R,GAAc;AAChD,QAAMlP,IAAMjD,EAAOQ,CAAG;AACtB,SAAOyN,EAAMhL,CAAG,IAAIA,IAAM,IAAI2O,GAAc5R,GAAQQ,GAAK2R,CAAY;AACvE;AACA,MAAMC,GAAgB;AAAA,EACpB,YAAY5N,GAAI6N,GAAQC,GAAO;AAC7B,SAAK,KAAK9N,GACV,KAAK,SAAS6N,GACd,KAAK,SAAS,QACd,KAAK,MAAM,IAAInI,GAAI,IAAI,GACvB,KAAK,YAAY,IACjB,KAAK,OAAO,QACZ,KAAK,WAAW,QAChB,KAAK,QAAQ,IACb,KAAK,gBAAgBZ,KAAgB,GACrC,KAAK,OAAO,QACZ,KAAK,SAAS,MACd,KAAK,iBAAoB,CAAC+I,GAC1B,KAAK,QAAQC;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AAEP,QADA,KAAK,SAAS,IACV,EAAE,KAAK,QAAQ;AAAA,IACnB7K,MAAc;AACZ,aAAAG,GAAM,MAAM,EAAI,GACT;AACF,IAAOvG,EAAQ,IAAI;AAAA,EAC5B;AAAA,EACA,IAAI,QAAQ;AACV,UAAM8G,IAAU9G,EAAQ,IAAI,aAAa,eAAgB,KAAK,IAAI,MAAM;AAAA,MACtE,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,IACX,CAAK,IAAI,KAAK,IAAI,MAAK;AACnB,WAAA+H,GAAgB,IAAI,GAChBjB,MACFA,EAAK,UAAU,KAAK,IAAI,UAEnB,KAAK;AAAA,EACd;AAAA,EACA,IAAI,MAAM4C,GAAU;AAClB,IAAI,KAAK,SACP,KAAK,OAAOA,CAAQ,IACR1J,EAAQ,IAAI,aAAa,gBACrCuF,EAAO,oDAAoD;AAAA,EAE/D;AACF;AACA,SAAS2L,GAAWC,GAAiBC,GAAcH,IAAQ,IAAO;AAChE,MAAII,GACAL;AACJ,EAAItO,EAAWyO,CAAe,IAC5BE,IAASF,KAETE,IAASF,EAAgB,KACzBH,IAASG,EAAgB;AAE3B,QAAMG,IAAO,IAAIP,GAAgBM,GAAQL,GAAQC,CAAK;AACtD,SAAOjR,EAAQ,IAAI,UACZsR;AACT;AACA,MAAMC,KAAwB,CAAA,GACxBC,KAA6B,oBAAI,QAAO;AAC9C,IAAIC;AACJ,SAASC,GAAiBC,GAAWxL,IAAe,IAAOyL,IAAQH,IAAe;AAChF,MAAIG,GAAO;AACT,QAAIC,IAAWL,GAAW,IAAII,CAAK;AACnC,IAAKC,KAAUL,GAAW,IAAII,GAAOC,IAAW,EAAE,GAClDA,EAAS,KAAKF,CAAS;AAAA,EACzB,MAAO,CAAO3R,EAAQ,IAAI,aAAa,gBAAiB,CAACmG,KACvDZ;AAAA,IACE;AAAA,EACN;AAEA;AACA,SAASuM,GAAQnT,GAAQoT,GAAIrU,IAAUmE,IAAW;AAChD,QAAM,EAAE,WAAAmQ,GAAW,MAAAC,GAAM,MAAAC,GAAM,WAAAC,GAAW,YAAAC,GAAY,MAAAC,EAAI,IAAK3U,GACzD4U,IAAoB,CAACC,MAAM;AAC/B,KAAC7U,EAAQ,UAAU6H;AAAA,MACjB;AAAA,MACAgN;AAAA,MACA;AAAA,IACN;AAAA,EACE,GACMC,IAAiB,CAACC,MAClBR,IAAaQ,IACblI,EAAUkI,CAAO,KAAKR,MAAS,MAASA,MAAS,IAC5CS,GAASD,GAAS,CAAC,IACrBC,GAASD,CAAO;AAEzB,MAAIE,GACAtB,GACA1I,GACAiK,GACAC,IAAe,IACfC,IAAgB;AA+CpB,MA9CIlG,EAAMjO,CAAM,KACd0S,IAAS,MAAM1S,EAAO,OACtBkU,IAAetI,EAAU5L,CAAM,KACtB+Q,GAAW/Q,CAAM,KAC1B0S,IAAS,MAAMmB,EAAe7T,CAAM,GACpCkU,IAAe,MACNvQ,EAAQ3D,CAAM,KACvBmU,IAAgB,IAChBD,IAAelU,EAAO,KAAK,CAAC4T,MAAM7C,GAAW6C,CAAC,KAAKhI,EAAUgI,CAAC,CAAC,GAC/DlB,IAAS,MAAM1S,EAAO,IAAI,CAAC4T,MAAM;AAC/B,QAAI3F,EAAM2F,CAAC;AACT,aAAOA,EAAE;AACJ,QAAI7C,GAAW6C,CAAC;AACrB,aAAOC,EAAeD,CAAC;AAClB,QAAI7P,EAAW6P,CAAC;AACrB,aAAOF,IAAOA,EAAKE,GAAG,CAAC,IAAIA,EAAC;AAE5B,IAAGvS,EAAQ,IAAI,aAAa,gBAAiBsS,EAAkBC,CAAC;AAAA,EAEpE,CAAC,KACQ7P,EAAW/D,CAAM,IACtBoT,IACFV,IAASgB,IAAO,MAAMA,EAAK1T,GAAQ,CAAC,IAAIA,IAExC0S,IAAS,MAAM;AACb,QAAI1I,GAAS;AACX,MAAAF,GAAa;AACb,UAAI;AACF,QAAAE,EAAO;AAAA,MACT,UAAC;AACC,QAAAD,GAAa;AAAA,MACf;AAAA,IACF;AACA,UAAMqK,IAAgBtB;AACtB,IAAAA,KAAgBkB;AAChB,QAAI;AACF,aAAON,IAAOA,EAAK1T,GAAQ,GAAG,CAACiU,CAAY,CAAC,IAAIjU,EAAOiU,CAAY;AAAA,IACrE,UAAC;AACC,MAAAnB,KAAgBsB;AAAA,IAClB;AAAA,EACF,KAGF1B,IAASvP,IACN9B,EAAQ,IAAI,aAAa,gBAAiBsS,EAAkB3T,CAAM,IAEnEoT,KAAME,GAAM;AACd,UAAMe,IAAa3B,GACb4B,IAAQhB,MAAS,KAAO,QAAWA;AACzC,IAAAZ,IAAS,MAAMqB,GAASM,EAAU,GAAIC,CAAK;AAAA,EAC7C;AACA,QAAMC,IAAQjN,GAAe,GACvBkN,IAAc,MAAM;AACxB,IAAAR,EAAO,KAAI,GACPO,KAASA,EAAM,UACjBjR,GAAOiR,EAAM,SAASP,CAAM;AAAA,EAEhC;AACA,MAAIT,KAAQH,GAAI;AACd,UAAMqB,IAAMrB;AACZ,IAAAA,IAAK,IAAI9Q,MAAS;AAChB,MAAAmS,EAAI,GAAGnS,CAAI,GACXkS,EAAW;AAAA,IACb;AAAA,EACF;AACA,MAAIvP,IAAWkP,IAAgB,IAAI,MAAMnU,EAAO,MAAM,EAAE,KAAK4S,EAAqB,IAAIA;AACtF,QAAM8B,IAAM,CAACC,MAAsB;AACjC,QAAI,IAAEX,EAAO,QAAQ,MAAM,CAACA,EAAO,SAAS,CAACW;AAG7C,UAAIvB,GAAI;AACN,cAAMrI,IAAWiJ,EAAO,IAAG;AAC3B,YAAIV,KAAQY,MAAiBC,IAAgBpJ,EAAS,KAAK,CAACrE,GAAGpH,MAAM0F,GAAW0B,GAAGzB,EAAS3F,CAAC,CAAC,CAAC,IAAI0F,GAAW+F,GAAU9F,CAAQ,IAAI;AAClI,UAAI+E,KACFA,EAAO;AAET,gBAAM4K,IAAiB9B;AACvB,UAAAA,KAAgBkB;AAChB,cAAI;AACF,kBAAM1R,IAAO;AAAA,cACXyI;AAAA;AAAA,cAEA9F,MAAa2N,KAAwB,SAASuB,KAAiBlP,EAAS,CAAC,MAAM2N,KAAwB,CAAA,IAAK3N;AAAA,cAC5GgP;AAAA,YACZ;AACU,YAAAhP,IAAW8F,GACX2I,IAAOA,EAAKN,GAAI,GAAG9Q,CAAI;AAAA;AAAA,cAErB8Q,EAAG,GAAG9Q,CAAI;AAAA;AAAA,UAEd,UAAC;AACC,YAAAwQ,KAAgB8B;AAAA,UAClB;AAAA,QACF;AAAA,MACF;AACE,QAAAZ,EAAO,IAAG;AAAA,EAEd;AACA,SAAIP,KACFA,EAAWiB,CAAG,GAEhBV,IAAS,IAAIrM,GAAe+K,CAAM,GAClCsB,EAAO,YAAYR,IAAY,MAAMA,EAAUkB,GAAK,EAAK,IAAIA,GAC7DT,IAAe,CAACzP,MAAOuO,GAAiBvO,GAAI,IAAOwP,CAAM,GACzDhK,IAAUgK,EAAO,SAAS,MAAM;AAC9B,UAAMd,IAAWL,GAAW,IAAImB,CAAM;AACtC,QAAId,GAAU;AACZ,UAAIQ;AACF,QAAAA,EAAKR,GAAU,CAAC;AAAA;AAEhB,mBAAW2B,KAAY3B,EAAU,CAAA2B,EAAQ;AAE3C,MAAAhC,GAAW,OAAOmB,CAAM;AAAA,IAC1B;AAAA,EACF,GACO3S,EAAQ,IAAI,aAAa,iBAC9B2S,EAAO,UAAUjV,EAAQ,SACzBiV,EAAO,YAAYjV,EAAQ,YAEzBqU,IACEC,IACFqB,EAAI,EAAI,IAERzP,IAAW+O,EAAO,IAAG,IAEdR,IACTA,EAAUkB,EAAI,KAAK,MAAM,EAAI,GAAG,EAAI,IAEpCV,EAAO,IAAG,GAEZQ,EAAY,QAAQR,EAAO,MAAM,KAAKA,CAAM,GAC5CQ,EAAY,SAASR,EAAO,OAAO,KAAKA,CAAM,GAC9CQ,EAAY,OAAOA,GACZA;AACT;AACA,SAAST,GAAS9V,GAAOqW,IAAQ,OAAUQ,GAAM;AAK/C,MAJIR,KAAS,KAAK,CAACtW,EAASC,CAAK,KAAKA,EAAM,aAG5C6W,IAAOA,KAAwB,oBAAI,IAAG,GAClCA,EAAK,IAAI7W,CAAK;AAChB,WAAOA;AAIT,MAFA6W,EAAK,IAAI7W,CAAK,GACdqW,KACIrG,EAAMhQ,CAAK;AACb,IAAA8V,GAAS9V,EAAM,OAAOqW,GAAOQ,CAAI;AAAA,WACxBnR,EAAQ1F,CAAK;AACtB,aAASqB,IAAI,GAAGA,IAAIrB,EAAM,QAAQqB;AAChC,MAAAyU,GAAS9V,EAAMqB,CAAC,GAAGgV,GAAOQ,CAAI;AAAA,WAEvBhR,GAAM7F,CAAK,KAAK2F,GAAM3F,CAAK;AACpC,IAAAA,EAAM,QAAQ,CAACyI,MAAM;AACnB,MAAAqN,GAASrN,GAAG4N,GAAOQ,CAAI;AAAA,IACzB,CAAC;AAAA,WACQzQ,GAAcpG,CAAK,GAAG;AAC/B,eAAWuC,KAAOvC;AAChB,MAAA8V,GAAS9V,EAAMuC,CAAG,GAAG8T,GAAOQ,CAAI;AAElC,eAAWtU,KAAO,OAAO,sBAAsBvC,CAAK;AAClD,MAAI,OAAO,UAAU,qBAAqB,KAAKA,GAAOuC,CAAG,KACvDuT,GAAS9V,EAAMuC,CAAG,GAAG8T,GAAOQ,CAAI;AAAA,EAGtC;AACA,SAAO7W;AACT;AAMA,MAAM8W,KAAQ,CAAA;AACd,SAASC,GAAmBC,GAAO;AACjC,EAAAF,GAAM,KAAKE,CAAK;AAClB;AACA,SAASC,KAAoB;AAC3B,EAAAH,GAAM,IAAG;AACX;AACA,IAAII,KAAY;AAChB,SAASC,EAAOvO,MAAQvE,GAAM;AAC5B,MAAI6S,GAAW;AACf,EAAAA,KAAY,IACZrL,GAAa;AACb,QAAMuL,IAAWN,GAAM,SAASA,GAAMA,GAAM,SAAS,CAAC,EAAE,YAAY,MAC9DO,IAAiBD,KAAYA,EAAS,WAAW,OAAO,aACxDE,IAAQC,GAAiB;AAC/B,MAAIF;AACF,IAAAG;AAAA,MACEH;AAAA,MACAD;AAAA,MACA;AAAA,MACA;AAAA;AAAA,QAEExO,IAAMvE,EAAK,IAAI,CAACoT,MAAM;AACpB,cAAI/O,GAAIgP;AACR,kBAAQA,KAAMhP,IAAK+O,EAAE,aAAa,OAAO,SAAS/O,EAAG,KAAK+O,CAAC,MAAM,OAAOC,IAAK,KAAK,UAAUD,CAAC;AAAA,QAC/F,CAAC,EAAE,KAAK,EAAE;AAAA,QACVL,KAAYA,EAAS;AAAA,QACrBE,EAAM;AAAA,UACJ,CAAC,EAAE,OAAAN,EAAK,MAAO,OAAOW,GAAoBP,GAAUJ,EAAM,IAAI,CAAC;AAAA,QACzE,EAAU,KAAK;AAAA,CAAI;AAAA,QACXM;AAAA,MACR;AAAA,IACA;AAAA,OACS;AACL,UAAMM,IAAW,CAAC,eAAehP,CAAG,IAAI,GAAGvE,CAAI;AAC/C,IAAIiT,EAAM,UAERM,EAAS,KAAK;AAAA,GACjB,GAAGC,GAAYP,CAAK,CAAC,GAEpB,QAAQ,KAAK,GAAGM,CAAQ;AAAA,EAC1B;AACA,EAAA9L,GAAa,GACboL,KAAY;AACd;AACA,SAASK,KAAoB;AAC3B,MAAIO,IAAehB,GAAMA,GAAM,SAAS,CAAC;AACzC,MAAI,CAACgB;AACH,WAAO,CAAA;AAET,QAAMC,IAAkB,CAAA;AACxB,SAAOD,KAAc;AACnB,UAAM3O,IAAO4O,EAAgB,CAAC;AAC9B,IAAI5O,KAAQA,EAAK,UAAU2O,IACzB3O,EAAK,iBAEL4O,EAAgB,KAAK;AAAA,MACnB,OAAOD;AAAA,MACP,cAAc;AAAA,IACtB,CAAO;AAEH,UAAME,IAAiBF,EAAa,aAAaA,EAAa,UAAU;AACxE,IAAAA,IAAeE,KAAkBA,EAAe;AAAA,EAClD;AACA,SAAOD;AACT;AACA,SAASF,GAAYP,GAAO;AAC1B,QAAMW,IAAO,CAAA;AACb,SAAAX,EAAM,QAAQ,CAACY,GAAO7W,MAAM;AAC1B,IAAA4W,EAAK,KAAK,GAAG5W,MAAM,IAAI,CAAA,IAAK,CAAC;AAAA,CAChC,GAAG,GAAG8W,GAAiBD,CAAK,CAAC;AAAA,EAC5B,CAAC,GACMD;AACT;AACA,SAASE,GAAiB,EAAE,OAAAnB,GAAO,cAAAoB,KAAgB;AACjD,QAAMC,IAAUD,IAAe,IAAI,QAAQA,CAAY,sBAAsB,IACvEE,IAAStB,EAAM,YAAYA,EAAM,UAAU,UAAU,OAAO,IAC5DuB,IAAO,QAAQZ;AAAA,IACnBX,EAAM;AAAA,IACNA,EAAM;AAAA,IACNsB;AAAA,EACJ,CAAG,IACKE,IAAQ,MAAMH;AACpB,SAAOrB,EAAM,QAAQ,CAACuB,GAAM,GAAGE,GAAYzB,EAAM,KAAK,GAAGwB,CAAK,IAAI,CAACD,IAAOC,CAAK;AACjF;AACA,SAASC,GAAY3W,GAAO;AAC1B,QAAMyF,IAAM,CAAA,GACNmR,IAAO,OAAO,KAAK5W,CAAK;AAC9B,SAAA4W,EAAK,MAAM,GAAG,CAAC,EAAE,QAAQ,CAACnW,MAAQ;AAChC,IAAAgF,EAAI,KAAK,GAAGoR,GAAWpW,GAAKT,EAAMS,CAAG,CAAC,CAAC;AAAA,EACzC,CAAC,GACGmW,EAAK,SAAS,KAChBnR,EAAI,KAAK,MAAM,GAEVA;AACT;AACA,SAASoR,GAAWpW,GAAKvC,GAAOyN,GAAK;AACnC,SAAI1H,EAAS/F,CAAK,KAChBA,IAAQ,KAAK,UAAUA,CAAK,GACrByN,IAAMzN,IAAQ,CAAC,GAAGuC,CAAG,IAAIvC,CAAK,EAAE,KAC9B,OAAOA,KAAU,YAAY,OAAOA,KAAU,aAAaA,KAAS,OACtEyN,IAAMzN,IAAQ,CAAC,GAAGuC,CAAG,IAAIvC,CAAK,EAAE,IAC9BgQ,EAAMhQ,CAAK,KACpBA,IAAQ2Y,GAAWpW,GAAKmL,EAAM1N,EAAM,KAAK,GAAG,EAAI,GACzCyN,IAAMzN,IAAQ,CAAC,GAAGuC,CAAG,SAASvC,GAAO,GAAG,KACtC8F,EAAW9F,CAAK,IAClB,CAAC,GAAGuC,CAAG,MAAMvC,EAAM,OAAO,IAAIA,EAAM,IAAI,MAAM,EAAE,EAAE,KAEzDA,IAAQ0N,EAAM1N,CAAK,GACZyN,IAAMzN,IAAQ,CAAC,GAAGuC,CAAG,KAAKvC,CAAK;AAE1C;AACA,SAAS4Y,GAAa5T,GAAK2H,GAAM;AAC/B,EAAQvJ,EAAQ,IAAI,aAAa,gBAC7B4B,MAAQ,WAED,OAAOA,KAAQ,WACxBmS,EAAO,GAAGxK,CAAI,gCAAgC,KAAK,UAAU3H,CAAG,CAAC,GAAG,IAC3D,MAAMA,CAAG,KAClBmS,EAAO,GAAGxK,CAAI,uDAAuD;AAEzE;AACA,MAAMkM,KAAqB;AAAA,EACxB,IAAO;AAAA,EACP,IAAO;AAAA,EACP,GAAM;AAAA,EACN,IAAO;AAAA,EACP,GAAM;AAAA,EACN,IAAO;AAAA,EACP,GAAM;AAAA,EACN,KAAQ;AAAA,EACR,IAAO;AAAA,EACP,GAAM;AAAA,EACN,IAAO;AAAA,EACP,IAAO;AAAA,EACP,KAAQ;AAAA,EACR,KAAQ;AAAA,EACR,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,GAAI;AAAA,EACJ,IAAK;AAAA,EACL,IAAK;AAAA,EACL,IAAK;AAAA,EACL,IAAK;AAAA,EACL,IAAK;AAAA,EACL,IAAK;AAAA,EACL,IAAK;AACR;AACA,SAASrB,GAAsBjR,GAAI6Q,GAAUzK,GAAMtI,GAAM;AACvD,MAAI;AACF,WAAOA,IAAOkC,EAAG,GAAGlC,CAAI,IAAIkC,EAAE;AAAA,EAChC,SAASwE,GAAK;AACZ,IAAA+N,GAAY/N,GAAKqM,GAAUzK,CAAI;AAAA,EACjC;AACF;AACA,SAASoM,GAA2BxS,GAAI6Q,GAAUzK,GAAMtI,GAAM;AAC5D,MAAIyB,EAAWS,CAAE,GAAG;AAClB,UAAMgB,IAAMiQ,GAAsBjR,GAAI6Q,GAAUzK,GAAMtI,CAAI;AAC1D,WAAIkD,KAAOtB,GAAUsB,CAAG,KACtBA,EAAI,MAAM,CAACwD,MAAQ;AACjB,MAAA+N,GAAY/N,GAAKqM,GAAUzK,CAAI;AAAA,IACjC,CAAC,GAEIpF;AAAA,EACT;AACA,MAAI7B,EAAQa,CAAE,GAAG;AACf,UAAMyS,IAAS,CAAA;AACf,aAAS,IAAI,GAAG,IAAIzS,EAAG,QAAQ;AAC7B,MAAAyS,EAAO,KAAKD,GAA2BxS,EAAG,CAAC,GAAG6Q,GAAUzK,GAAMtI,CAAI,CAAC;AAErE,WAAO2U;AAAA,EACT,MAAO,CAAO5V,EAAQ,IAAI,aAAa,gBACrC+T;AAAA,IACE,8DAA8D,OAAO5Q,CAAE;AAAA,EAC7E;AAEA;AACA,SAASuS,GAAY/N,GAAKqM,GAAUzK,GAAMsM,IAAa,IAAM;AAC3D,QAAMC,IAAe9B,IAAWA,EAAS,QAAQ,MAC3C,EAAE,cAAA+B,GAAc,iCAAAC,EAA+B,IAAKhC,KAAYA,EAAS,WAAW,UAAUnS;AACpG,MAAImS,GAAU;AACZ,QAAIiC,IAAMjC,EAAS;AACnB,UAAMkC,IAAkBlC,EAAS,OAC3BmC,IAAenW,EAAQ,IAAI,aAAa,eAAgByV,GAAmBlM,CAAI,IAAI,8CAA8CA,CAAI;AAC3I,WAAO0M,KAAK;AACV,YAAMG,IAAqBH,EAAI;AAC/B,UAAIG;AACF,iBAASnY,IAAI,GAAGA,IAAImY,EAAmB,QAAQnY;AAC7C,cAAImY,EAAmBnY,CAAC,EAAE0J,GAAKuO,GAAiBC,CAAS,MAAM;AAC7D;AAAA;AAIN,MAAAF,IAAMA,EAAI;AAAA,IACZ;AACA,QAAIF,GAAc;AAChB,MAAAtN,GAAa,GACb2L,GAAsB2B,GAAc,MAAM,IAAI;AAAA,QAC5CpO;AAAA,QACAuO;AAAA,QACAC;AAAA,MACR,CAAO,GACDzN,GAAa;AACb;AAAA,IACF;AAAA,EACF;AACA,EAAA2N,GAAS1O,GAAK4B,GAAMuM,GAAcD,GAAYG,CAA+B;AAC/E;AACA,SAASK,GAAS1O,GAAK4B,GAAMuM,GAAcD,IAAa,IAAMS,IAAc,IAAO;AACjF,MAAOtW,EAAQ,IAAI,aAAa,cAAe;AAC7C,UAAMuW,IAAOd,GAAmBlM,CAAI;AAQpC,QAPIuM,KACFnC,GAAmBmC,CAAY,GAEjC/B,EAAO,kBAAkBwC,IAAO,wBAAwBA,CAAI,KAAK,EAAE,EAAE,GACjET,KACFjC,GAAiB,GAEfgC;AACF,YAAMlO;AAEN,YAAQ,MAAMA,CAAG;AAAA,EAErB,OAAO;AAAA,QAAI2O;AACT,YAAM3O;AAEN,YAAQ,MAAMA,CAAG;AAAA;AAErB;AACA,MAAMlH,IAAQ,CAAA;AACd,IAAI+V,IAAa;AACjB,MAAMC,KAAsB,CAAA;AAC5B,IAAIC,KAAqB,MACrBC,KAAiB;AACrB,MAAMC,KAAkC,wBAAQ,QAAO;AACvD,IAAIC,KAAsB;AAC1B,MAAMC,KAAkB;AACxB,SAASC,GAAS5T,GAAI;AACpB,QAAM9D,IAAIwX,MAAuBD;AACjC,SAAOzT,IAAK9D,EAAE,KAAK,OAAO8D,EAAG,KAAK,IAAI,IAAIA,CAAE,IAAI9D;AAClD;AACA,SAAS2X,GAAmBC,GAAI;AAC9B,MAAIC,IAAQV,IAAa,GACrBW,IAAM1W,EAAM;AAChB,SAAOyW,IAAQC,KAAK;AAClB,UAAMC,IAASF,IAAQC,MAAQ,GACzBE,IAAY5W,EAAM2W,CAAM,GACxBE,IAAcC,GAAMF,CAAS;AACnC,IAAIC,IAAcL,KAAMK,MAAgBL,KAAMI,EAAU,QAAQ,IAC9DH,IAAQE,IAAS,IAEjBD,IAAMC;AAAA,EAEV;AACA,SAAOF;AACT;AACA,SAASM,GAASnE,GAAK;AACrB,MAAI,EAAEA,EAAI,QAAQ,IAAI;AACpB,UAAMoE,IAAQF,GAAMlE,CAAG,GACjBqE,IAAUjX,EAAMA,EAAM,SAAS,CAAC;AACtC,IAAI,CAACiX;AAAA,IACL,EAAErE,EAAI,QAAQ,MAAMoE,KAASF,GAAMG,CAAO,IACxCjX,EAAM,KAAK4S,CAAG,IAEd5S,EAAM,OAAOuW,GAAmBS,CAAK,GAAG,GAAGpE,CAAG,GAEhDA,EAAI,SAAS,GACbsE,GAAU;AAAA,EACZ;AACF;AACA,SAASA,KAAa;AACpB,EAAKd,OACHA,KAAsBD,GAAgB,KAAKgB,EAAS;AAExD;AACA,SAASC,GAAiB9F,GAAI;AAC5B,EAAKzP,EAAQyP,CAAE,IAQb0E,GAAoB,KAAK,GAAG1E,CAAE,IAP1B2E,MAAsB3E,EAAG,OAAO,KAClC2E,GAAmB,OAAOC,KAAiB,GAAG,GAAG5E,CAAE,IACxCA,EAAG,QAAQ,MACtB0E,GAAoB,KAAK1E,CAAE,GAC3BA,EAAG,SAAS,IAKhB4F,GAAU;AACZ;AA0BA,SAASG,GAAkBrE,GAAM;AAC/B,MAAIgD,GAAoB,QAAQ;AAC9B,UAAMsB,IAAU,CAAC,GAAG,IAAI,IAAItB,EAAmB,CAAC,EAAE;AAAA,MAChD,CAACpC,GAAG2D,MAAMT,GAAMlD,CAAC,IAAIkD,GAAMS,CAAC;AAAA,IAClC;AAEI,QADAvB,GAAoB,SAAS,GACzBC,IAAoB;AACtB,MAAAA,GAAmB,KAAK,GAAGqB,CAAO;AAClC;AAAA,IACF;AAKA,SAJArB,KAAqBqB,GACd/X,EAAQ,IAAI,aAAa,iBAC9ByT,IAAOA,KAAwB,oBAAI,IAAG,IAEnCkD,KAAiB,GAAGA,KAAiBD,GAAmB,QAAQC,MAAkB;AACrF,YAAM5E,IAAK2E,GAAmBC,EAAc;AAC5C,MAAO3W,EAAQ,IAAI,aAAa,gBAAiBiY,GAAsBxE,GAAM1B,CAAE,MAG3EA,EAAG,QAAQ,MACbA,EAAG,SAAS,KAERA,EAAG,QAAQ,KAAIA,EAAE,GACvBA,EAAG,SAAS;AAAA,IACd;AACA,IAAA2E,KAAqB,MACrBC,KAAiB;AAAA,EACnB;AACF;AACA,MAAMY,KAAQ,CAAClE,MAAQA,EAAI,MAAM,OAAOA,EAAI,QAAQ,IAAI,KAAK,QAAWA,EAAI;AAC5E,SAASuE,GAAUnE,GAAM;AACvB,EAAOzT,EAAQ,IAAI,aAAa,iBAC9ByT,IAAOA,KAAwB,oBAAI,IAAG;AAExC,QAAMyE,IAAWlY,EAAQ,IAAI,aAAa,eAAgB,CAACqT,MAAQ4E,GAAsBxE,GAAMJ,CAAG,IAAIvR;AACtG,MAAI;AACF,SAAK0U,IAAa,GAAGA,IAAa/V,EAAM,QAAQ+V,KAAc;AAC5D,YAAMnD,IAAM5S,EAAM+V,CAAU;AAC5B,UAAInD,KAAO,EAAEA,EAAI,QAAQ,IAAI;AAC3B,YAAOrT,EAAQ,IAAI,aAAa,gBAAiBkY,EAAM7E,CAAG;AACxD;AAEF,QAAIA,EAAI,QAAQ,MACdA,EAAI,SAAS,KAEfe;AAAA,UACEf;AAAA,UACAA,EAAI;AAAA,UACJA,EAAI,IAAI,KAAK;AAAA,QACvB,GACcA,EAAI,QAAQ,MAChBA,EAAI,SAAS;AAAA,MAEjB;AAAA,IACF;AAAA,EACF,UAAC;AACC,WAAOmD,IAAa/V,EAAM,QAAQ+V,KAAc;AAC9C,YAAMnD,IAAM5S,EAAM+V,CAAU;AAC5B,MAAInD,MACFA,EAAI,SAAS;AAAA,IAEjB;AACA,IAAAmD,IAAa,IACb/V,EAAM,SAAS,GACfqX,GAAkBrE,CAAI,GACtBoD,KAAsB,OAClBpW,EAAM,UAAUgW,GAAoB,WACtCmB,GAAUnE,CAAI;AAAA,EAElB;AACF;AACA,SAASwE,GAAsBxE,GAAMtQ,GAAI;AACvC,QAAMgV,IAAQ1E,EAAK,IAAItQ,CAAE,KAAK;AAC9B,MAAIgV,IAAQrB,IAAiB;AAC3B,UAAM9C,IAAW7Q,EAAG,GACdiV,IAAgBpE,KAAYqE,GAAiBrE,EAAS,IAAI;AAChE,WAAA0B;AAAA,MACE,qCAAqC0C,IAAgB,kBAAkBA,CAAa,MAAM,EAAE;AAAA,MAC5F;AAAA,MACA;AAAA,IACN,GACW;AAAA,EACT;AACA,SAAA3E,EAAK,IAAItQ,GAAIgV,IAAQ,CAAC,GACf;AACT;AACA,IAAIG,KAAgB;AACpB,MAAMC,KAAqC,oBAAI,IAAG;AAC3CvY,EAAQ,IAAI,aAAa,iBAC9BgE,GAAa,EAAG,sBAAsB;AAAA,EACpC,cAAcwU,GAAQC,EAAY;AAAA,EAClC,UAAUD,GAAQE,EAAQ;AAAA,EAC1B,QAAQF,GAAQG,EAAM;AAC1B;AAEA,MAAMC,KAAsB,oBAAI,IAAG;AAanC,SAASH,GAAaxB,GAAI4B,GAAY;AACpC,SAAID,GAAI,IAAI3B,CAAE,IACL,MAET2B,GAAI,IAAI3B,GAAI;AAAA,IACV,YAAY6B,GAAwBD,CAAU;AAAA,IAC9C,WAA2B,oBAAI,IAAG;AAAA,EACtC,CAAG,GACM;AACT;AACA,SAASC,GAAwBC,GAAW;AAC1C,SAAOC,GAAiBD,CAAS,IAAIA,EAAU,YAAYA;AAC7D;AACA,SAASL,GAASzB,GAAIgC,GAAW;AAC/B,QAAMC,IAASN,GAAI,IAAI3B,CAAE;AACzB,EAAKiC,MAGLA,EAAO,WAAW,SAASD,GAC3B,CAAC,GAAGC,EAAO,SAAS,EAAE,QAAQ,CAAClF,MAAa;AAC1C,IAAIiF,MACFjF,EAAS,SAASiF,GAClBH,GAAwB9E,EAAS,IAAI,EAAE,SAASiF,IAElDjF,EAAS,cAAc,CAAA,GACvBsE,KAAgB,IAChBtE,EAAS,OAAM,GACfsE,KAAgB;AAAA,EAClB,CAAC;AACH;AACA,SAASK,GAAO1B,GAAIkC,GAAS;AAC3B,QAAMD,IAASN,GAAI,IAAI3B,CAAE;AACzB,MAAI,CAACiC,EAAQ;AACb,EAAAC,IAAUL,GAAwBK,CAAO,GACzCC,GAAmBF,EAAO,YAAYC,CAAO;AAC7C,QAAME,IAAY,CAAC,GAAGH,EAAO,SAAS;AACtC,WAASjb,IAAI,GAAGA,IAAIob,EAAU,QAAQpb,KAAK;AACzC,UAAM+V,IAAWqF,EAAUpb,CAAC,GACtBqb,IAAUR,GAAwB9E,EAAS,IAAI;AACrD,QAAIuF,IAAiBhB,GAAmB,IAAIe,CAAO;AACnD,IAAKC,MACCD,MAAYJ,EAAO,cACrBE,GAAmBE,GAASH,CAAO,GAErCZ,GAAmB,IAAIe,GAASC,IAAiC,oBAAI,IAAG,CAAE,IAE5EA,EAAe,IAAIvF,CAAQ,GAC3BA,EAAS,WAAW,WAAW,OAAOA,EAAS,IAAI,GACnDA,EAAS,WAAW,WAAW,OAAOA,EAAS,IAAI,GACnDA,EAAS,WAAW,aAAa,OAAOA,EAAS,IAAI,GACjDA,EAAS,YACXuF,EAAe,IAAIvF,CAAQ,GAC3BA,EAAS,SAASmF,EAAQ,MAAM,GAChCI,EAAe,OAAOvF,CAAQ,KACrBA,EAAS,SAClBwD,GAAS,MAAM;AACb,MAAAc,KAAgB,IAChBtE,EAAS,OAAO,OAAM,GACtBsE,KAAgB,IAChBiB,EAAe,OAAOvF,CAAQ;AAAA,IAChC,CAAC,IACQA,EAAS,WAAW,SAC7BA,EAAS,WAAW,OAAM,IACjB,OAAO,SAAW,MAC3B,OAAO,SAAS,OAAM,IAEtB,QAAQ;AAAA,MACN;AAAA,IACR,GAEQA,EAAS,KAAK,MAAMA,MAAaA,EAAS,QAC5CA,EAAS,KAAK,GAAG,kBAAkBsF,CAAO;AAAA,EAE9C;AACA,EAAAzB,GAAiB,MAAM;AACrB,IAAAU,GAAmB,MAAK;AAAA,EAC1B,CAAC;AACH;AACA,SAASa,GAAmBE,GAASH,GAAS;AAC5C,EAAAnX,GAAOsX,GAASH,CAAO;AACvB,aAAWha,KAAOma;AAChB,IAAIna,MAAQ,YAAY,EAAEA,KAAOga,MAC/B,OAAOG,EAAQna,CAAG;AAGxB;AACA,SAASqZ,GAAQrV,GAAI;AACnB,SAAO,CAAC8T,GAAIuC,MAAQ;AAClB,QAAI;AACF,aAAOrW,EAAG8T,GAAIuC,CAAG;AAAA,IACnB,SAAShS,GAAG;AACV,cAAQ,MAAMA,CAAC,GACf,QAAQ;AAAA,QACN;AAAA,MACR;AAAA,IACI;AAAA,EACF;AACF;AACA,IAAIiS,IACAC,KAAS,CAAA;AASb,SAASC,GAAkBC,GAAMtQ,GAAQ;AACvC,MAAIhE,GAAIgP;AACR,EAAAmF,KAAaG,GACTH,MACFA,GAAW,UAAU,IACrBC,GAAO,QAAQ,CAAC,EAAE,OAAAG,GAAO,MAAA5Y,EAAI,MAAOwY,GAAW,KAAKI,GAAO,GAAG5Y,CAAI,CAAC,GACnEyY,KAAS,CAAA,4KAKT,OAAO,SAAW;AAAA,EAClB,OAAO;AAAA;AAAA,EAEP,GAAGpF,KAAMhP,IAAK,OAAO,cAAc,OAAO,SAASA,EAAG,cAAc,QAAgBgP,EAAG,SAAS,OAAO,OAExFhL,EAAO,+BAA+BA,EAAO,gCAAgC,CAAA,GACrF,KAAK,CAACwQ,MAAY;AACvB,IAAAH,GAAkBG,GAASxQ,CAAM;AAAA,EACnC,CAAC,GACD,WAAW,MAAM;AACf,IAAKmQ,OACHnQ,EAAO,+BAA+B,MAEtCoQ,KAAS,CAAA;AAAA,EAEb,GAAG,GAAG,KAGNA,KAAS,CAAA;AAEb;AAiEA,IAAIK,KAA2B,MAC3BC,KAAiB;AAyCrB,SAASC,GAAerG,GAAOsG,GAAY;AAEvC,SAAGla,EAAQ,IAAI,aAAa,gBAAiB+T,EAAO,0DAA0D,GACvGH;AA2BX;AAsBA,MAAMuG,KAAiB,OAAO,MAAM,GAC9BC,KAAa,CAAC7Q,MAASA,EAAK,cAC5B8Q,KAAqB,CAAC3b,MAAUA,MAAUA,EAAM,YAAYA,EAAM,aAAa,KAC/E4b,KAAqB,CAAC5b,MAAUA,MAAUA,EAAM,SAASA,EAAM,UAAU,KACzE6b,KAAc,CAACjR,MAAW,OAAO,aAAe,OAAeA,aAAkB,YACjFkR,KAAiB,CAAClR,MAAW,OAAO,iBAAkB,cAAcA,aAAkB,eACtFmR,KAAgB,CAAC/b,GAAOgc,MAAW;AACvC,QAAMC,IAAiBjc,KAASA,EAAM;AACtC,MAAIiE,EAASgY,CAAc;AACzB,QAAKD,GAKE;AACL,YAAMpR,IAASoR,EAAOC,CAAc;AACpC,aAAO3a,EAAQ,IAAI,aAAa,gBAAiB,CAACsJ,KAAU,CAAC+Q,GAAmB3b,CAAK,KACnFqV;AAAA,QACE,mDAAmD4G,CAAc;AAAA,MAC3E,GAEarR;AAAA,IACT;AAZE,aAAGtJ,EAAQ,IAAI,aAAa,gBAAiB+T;AAAA,QAC3C;AAAA,MACR,GACa;AAAA;AAWT,WAAO/T,EAAQ,IAAI,aAAa,gBAAiB,CAAC2a,KAAkB,CAACN,GAAmB3b,CAAK,KAC3FqV,EAAO,4BAA4B4G,CAAc,EAAE,GAE9CA;AAEX,GACMC,KAAe;AAAA,EACnB,MAAM;AAAA,EACN,cAAc;AAAA,EACd,QAAQC,GAAIC,GAAIC,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,GAAWC,GAAW;AACjH,UAAM;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,KAAKC;AAAA,MACL,GAAG,EAAE,QAAAC,GAAQ,eAAAC,GAAe,YAAAC,GAAY,eAAAC,EAAa;AAAA,IAC3D,IAAQP,GACEQ,IAAWzB,GAAmBS,EAAG,KAAK;AAC5C,QAAI,EAAE,WAAAiB,GAAW,UAAAC,GAAU,iBAAAC,EAAe,IAAKnB;AAK/C,QAJO9a,EAAQ,IAAI,aAAa,gBAAiBsY,OAC/C+C,IAAY,IACZY,IAAkB,OAEhBpB,KAAM,MAAM;AACd,YAAMqB,IAAcpB,EAAG,KAAQ9a,EAAQ,IAAI,aAAa,eAAgB6b,EAAc,gBAAgB,IAAID,EAAW,EAAE,GACjHO,IAAarB,EAAG,SAAY9a,EAAQ,IAAI,aAAa,eAAgB6b,EAAc,cAAc,IAAID,EAAW,EAAE;AACxH,MAAAF,EAAOQ,GAAanB,GAAWC,CAAM,GACrCU,EAAOS,GAAYpB,GAAWC,CAAM;AACpC,YAAMoB,IAAQ,CAACC,GAAYC,MAAY;AACrC,QAAIP,IAAY,OACVd,KAAmBA,EAAgB,SACrCA,EAAgB,GAAG,kBAAkBoB,IAEvCd;AAAA,UACES;AAAA,UACAK;AAAA,UACAC;AAAA,UACArB;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,UACAC;AAAA,QACZ;AAAA,MAEM,GACMkB,IAAgB,MAAM;AAC1B,cAAMjT,IAASwR,EAAG,SAASL,GAAcK,EAAG,OAAOa,CAAa,GAC1Da,IAAeC,GAAcnT,GAAQwR,GAAIc,GAAYF,CAAM;AACjE,QAAIpS,KACE6R,MAAc,SAASZ,GAAYjR,CAAM,IAC3C6R,IAAY,QACHA,MAAc,YAAYX,GAAelR,CAAM,MACxD6R,IAAY,WAETW,MACHM,EAAM9S,GAAQkT,CAAY,GAC1BE,GAAc5B,GAAI,EAAK,MAEb9a,EAAQ,IAAI,aAAa,gBAAiB,CAAC8b,KACvD/H;AAAA,UACE;AAAA,UACAzK;AAAA,UACA,IAAI,OAAOA,CAAM;AAAA,QAC7B;AAAA,MAEM;AACA,MAAIwS,MACFM,EAAMrB,GAAWoB,CAAU,GAC3BO,GAAc5B,GAAI,EAAI,IAEpBR,GAAmBQ,EAAG,KAAK,KAC7BA,EAAG,GAAG,cAAc,IACpB6B,GAAsB,MAAM;AAC1B,QAAAJ,EAAa,GACb,OAAOzB,EAAG,GAAG;AAAA,MACf,GAAGI,CAAc,KAEjBqB,EAAa;AAAA,IAEjB,OAAO;AACL,UAAIjC,GAAmBQ,EAAG,KAAK,KAAKD,EAAG,GAAG,gBAAgB,IAAO;AAC/D,QAAA8B,GAAsB,MAAM;AAC1B,UAAA/B,GAAa;AAAA,YACXC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,YACAC;AAAA,UACZ;AAAA,QACQ,GAAGJ,CAAc;AACjB;AAAA,MACF;AACA,MAAAJ,EAAG,KAAKD,EAAG,IACXC,EAAG,cAAcD,EAAG;AACpB,YAAMsB,IAAarB,EAAG,SAASD,EAAG,QAC5BvR,IAASwR,EAAG,SAASD,EAAG,QACxB2B,IAAe1B,EAAG,eAAeD,EAAG,cACpC+B,IAAcvC,GAAmBQ,EAAG,KAAK,GACzCgC,IAAmBD,IAAc7B,IAAYzR,GAC7CwT,IAAgBF,IAAcT,IAAaK;AA8BjD,UA7BIrB,MAAc,SAASZ,GAAYjR,CAAM,IAC3C6R,IAAY,SACHA,MAAc,YAAYX,GAAelR,CAAM,OACxD6R,IAAY,WAEVc,KACFR;AAAA,QACEZ,EAAG;AAAA,QACHoB;AAAA,QACAY;AAAA,QACA5B;AAAA,QACAC;AAAA,QACAC;AAAA,QACAC;AAAA,MACV,GACQ2B,GAAuBlC,GAAIC,GAAQ9a,EAAQ,IAAI,aAAa,YAAa,KAC/Dqb,KACVG;AAAA,QACEX;AAAA,QACAC;AAAA,QACA+B;AAAA,QACAC;AAAA,QACA7B;AAAA,QACAC;AAAA,QACAC;AAAA,QACAC;AAAA,QACA;AAAA,MACV,GAEUU;AACF,QAAKc,IASC9B,EAAG,SAASD,EAAG,SAASC,EAAG,MAAM,OAAOD,EAAG,MAAM,OACnDC,EAAG,MAAM,KAAKD,EAAG,MAAM,MATzBmC;AAAA,UACElC;AAAA,UACAC;AAAA,UACAoB;AAAA,UACAb;AAAA,UACA;AAAA,QACZ;AAAA,gBAOaR,EAAG,SAASA,EAAG,MAAM,SAASD,EAAG,SAASA,EAAG,MAAM,KAAK;AAC3D,cAAMoC,IAAanC,EAAG,SAASL;AAAA,UAC7BK,EAAG;AAAA,UACHa;AAAA,QACZ;AACU,QAAIsB,IACFD;AAAA,UACElC;AAAA,UACAmC;AAAA,UACA;AAAA,UACA3B;AAAA,UACA;AAAA,QACd,IACwBtb,EAAQ,IAAI,aAAa,gBACrC+T;AAAA,UACE;AAAA,UACAzK;AAAA,UACA,IAAI,OAAOA,CAAM;AAAA,QAC/B;AAAA,MAEQ,MAAO,CAAIsT,KACTI;AAAA,QACElC;AAAA,QACAxR;AAAA,QACAkT;AAAA,QACAlB;AAAA,QACA;AAAA,MACZ;AAGM,MAAAoB,GAAc5B,GAAIgB,CAAQ;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,OAAOlI,GAAOqH,GAAiBC,GAAgB,EAAE,IAAIgC,GAAS,GAAG,EAAE,QAAQC,EAAU,EAAE,GAAIC,GAAU;AACnG,UAAM;AAAA,MACJ,WAAArB;AAAA,MACA,UAAAC;AAAA,MACA,QAAAhB;AAAA,MACA,aAAAqC;AAAA,MACA,cAAAb;AAAA,MACA,QAAAlT;AAAA,MACA,OAAA5K;AAAA,IACN,IAAQkV;AAMJ,QALItK,MACF6T,EAAWE,CAAW,GACtBF,EAAWX,CAAY,IAEzBY,KAAYD,EAAWnC,CAAM,GACzBe,IAAY,IAAI;AAClB,YAAMuB,IAAeF,KAAY,CAAC/C,GAAmB3b,CAAK;AAC1D,eAAST,IAAI,GAAGA,IAAI+d,EAAS,QAAQ/d,KAAK;AACxC,cAAMsf,IAAQvB,EAAS/d,CAAC;AACxB,QAAAif;AAAA,UACEK;AAAA,UACAtC;AAAA,UACAC;AAAA,UACAoC;AAAA,UACA,CAAC,CAACC,EAAM;AAAA,QAClB;AAAA,MACM;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAMP;AAAA,EACN,SAASQ;AACX;AACA,SAASR,GAAapJ,GAAOmH,GAAW0C,GAAc,EAAE,GAAG,EAAE,QAAA/B,EAAM,GAAI,GAAGgC,KAAQC,IAAW,GAAG;AAC9F,EAAIA,MAAa,KACfjC,EAAO9H,EAAM,cAAcmH,GAAW0C,CAAY;AAEpD,QAAM,EAAE,IAAAtb,GAAI,QAAA6Y,GAAQ,WAAAe,GAAW,UAAAC,GAAU,OAAAtd,EAAK,IAAKkV,GAC7CgK,IAAYD,MAAa;AAI/B,MAHIC,KACFlC,EAAOvZ,GAAI4Y,GAAW0C,CAAY,IAEhC,CAACG,KAAavD,GAAmB3b,CAAK,MACpCqd,IAAY;AACd,aAAS9d,IAAI,GAAGA,IAAI+d,EAAS,QAAQ/d;AACnC,MAAAyf;AAAA,QACE1B,EAAS/d,CAAC;AAAA,QACV8c;AAAA,QACA0C;AAAA,QACA;AAAA,MACV;AAIE,EAAIG,KACFlC,EAAOV,GAAQD,GAAW0C,CAAY;AAE1C;AACA,SAASD,GAAgBK,GAAMjK,GAAOqH,GAAiBC,GAAgBE,GAAcC,GAAW;AAAA,EAC9F,GAAG,EAAE,aAAAyC,GAAa,YAAAC,GAAY,eAAApC,GAAe,QAAAD,GAAQ,YAAAE,EAAU;AACjE,GAAGoC,GAAiB;AAClB,QAAM1U,IAASsK,EAAM,SAAS6G;AAAA,IAC5B7G,EAAM;AAAA,IACN+H;AAAA,EACJ;AACE,MAAIrS,GAAQ;AACV,UAAMwS,IAAWzB,GAAmBzG,EAAM,KAAK,GACzCqK,IAAa3U,EAAO,QAAQA,EAAO;AACzC,QAAIsK,EAAM,YAAY;AACpB,UAAIkI;AACF,QAAAlI,EAAM,SAASoK;AAAA,UACbF,EAAYD,CAAI;AAAA,UAChBjK;AAAA,UACAmK,EAAWF,CAAI;AAAA,UACf5C;AAAA,UACAC;AAAA,UACAE;AAAA,UACAC;AAAA,QACV,GACQzH,EAAM,cAAcqK,GACpBrK,EAAM,eAAeqK,KAAcH,EAAYG,CAAU;AAAA,WACpD;AACL,QAAArK,EAAM,SAASkK,EAAYD,CAAI;AAC/B,YAAIrB,IAAeyB;AACnB,eAAOzB,KAAc;AACnB,cAAIA,KAAgBA,EAAa,aAAa;AAC5C,gBAAIA,EAAa,SAAS;AACxB,cAAA5I,EAAM,cAAc4I;AAAA,qBACXA,EAAa,SAAS,mBAAmB;AAClD,cAAA5I,EAAM,eAAe4I,GACrBlT,EAAO,OAAOsK,EAAM,gBAAgBkK,EAAYlK,EAAM,YAAY;AAClE;AAAA,YACF;AAAA;AAEF,UAAA4I,IAAesB,EAAYtB,CAAY;AAAA,QACzC;AACA,QAAK5I,EAAM,gBACT6I,GAAcnT,GAAQsK,GAAOgI,GAAYF,CAAM,GAEjDsC;AAAA,UACEC,KAAcH,EAAYG,CAAU;AAAA,UACpCrK;AAAA,UACAtK;AAAA,UACA2R;AAAA,UACAC;AAAA,UACAE;AAAA,UACAC;AAAA,QACV;AAAA,MACM;AAEF,IAAAqB,GAAc9I,GAAOkI,CAAQ;AAAA,EAC/B;AACA,SAAOlI,EAAM,UAAUkK,EAAYlK,EAAM,MAAM;AACjD;AACK,MAACsK,KAAWtD;AACjB,SAAS8B,GAAc9I,GAAOuK,GAAY;AACxC,QAAMC,IAAMxK,EAAM;AAClB,MAAIwK,KAAOA,EAAI,IAAI;AACjB,QAAIP,GAAM7C;AAQV,SAPImD,KACFN,IAAOjK,EAAM,IACboH,IAASpH,EAAM,WAEfiK,IAAOjK,EAAM,aACboH,IAASpH,EAAM,eAEViK,KAAQA,MAAS7C;AACtB,MAAI6C,EAAK,aAAa,KAAGA,EAAK,aAAa,gBAAgBO,EAAI,GAAG,GAClEP,IAAOA,EAAK;AAEd,IAAAO,EAAI,GAAE;AAAA,EACR;AACF;AACA,SAAS3B,GAAcnT,GAAQsK,GAAOgI,GAAYF,GAAQ;AACxD,QAAM2B,IAAczJ,EAAM,cAAcgI,EAAW,EAAE,GAC/CY,IAAe5I,EAAM,eAAegI,EAAW,EAAE;AACvD,SAAAyB,EAAYlD,EAAc,IAAIqC,GAC1BlT,MACFoS,EAAO2B,GAAa/T,CAAM,GAC1BoS,EAAOc,GAAclT,CAAM,IAEtBkT;AACT;AACA,MAAM6B,KAAa,OAAO,UAAU,GAC9BC,KAAa,OAAO,UAAU;AACpC,SAASC,KAAqB;AAC5B,QAAMC,IAAQ;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAA+B,oBAAI,IAAG;AAAA,EAC1C;AACE,SAAAC,GAAU,MAAM;AACd,IAAAD,EAAM,YAAY;AAAA,EACpB,CAAC,GACDE,GAAgB,MAAM;AACpB,IAAAF,EAAM,eAAe;AAAA,EACvB,CAAC,GACMA;AACT;AACA,MAAMG,IAA0B,CAAC,UAAU,KAAK,GAC1CC,KAAgC;AAAA,EACpC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,WAAW;AAAA;AAAA,EAEX,eAAeD;AAAA,EACf,SAASA;AAAA,EACT,cAAcA;AAAA,EACd,kBAAkBA;AAAA;AAAA,EAElB,eAAeA;AAAA,EACf,SAASA;AAAA,EACT,cAAcA;AAAA,EACd,kBAAkBA;AAAA;AAAA,EAElB,gBAAgBA;AAAA,EAChB,UAAUA;AAAA,EACV,eAAeA;AAAA,EACf,mBAAmBA;AACrB,GACME,KAAsB,CAAC7K,MAAa;AACxC,QAAM8K,IAAU9K,EAAS;AACzB,SAAO8K,EAAQ,YAAYD,GAAoBC,EAAQ,SAAS,IAAIA;AACtE,GACMC,KAAqB;AAAA,EACzB,MAAM;AAAA,EACN,OAAOH;AAAA,EACP,MAAMlgB,GAAO,EAAE,OAAAsgB,KAAS;AACtB,UAAMhL,IAAWiL,GAAkB,GAC7BT,IAAQD,GAAkB;AAChC,WAAO,MAAM;AACX,YAAMvC,IAAWgD,EAAM,WAAWE,GAAyBF,EAAM,QAAO,GAAI,EAAI;AAChF,UAAI,CAAChD,KAAY,CAACA,EAAS;AACzB;AAEF,YAAMuB,IAAQ4B,GAAoBnD,CAAQ,GACpCoD,IAAW9U,EAAM5L,CAAK,GACtB,EAAE,MAAA2gB,EAAI,IAAKD;AAIjB,UAHOpf,EAAQ,IAAI,aAAa,gBAAiBqf,KAAQA,MAAS,YAAYA,MAAS,YAAYA,MAAS,aAC1GtL,EAAO,8BAA8BsL,CAAI,EAAE,GAEzCb,EAAM;AACR,eAAOc,GAAiB/B,CAAK;AAE/B,YAAMgC,IAAaC,GAAgBjC,CAAK;AACxC,UAAI,CAACgC;AACH,eAAOD,GAAiB/B,CAAK;AAE/B,UAAIkC,IAAaC;AAAA,QACfH;AAAA,QACAH;AAAA,QACAZ;AAAA,QACAxK;AAAA;AAAA,QAEA,CAAC2L,MAAUF,IAAaE;AAAA,MAChC;AACM,MAAIJ,EAAW,SAASK,KACtBC,GAAmBN,GAAYE,CAAU;AAE3C,UAAIK,IAAgB9L,EAAS,WAAWwL,GAAgBxL,EAAS,OAAO;AACxE,UAAI8L,KAAiBA,EAAc,SAASF,KAAW,CAACG,GAAgBR,GAAYO,CAAa,KAAKjB,GAAoB7K,CAAQ,EAAE,SAAS4L,GAAS;AACpJ,YAAII,IAAeN;AAAA,UACjBI;AAAA,UACAV;AAAA,UACAZ;AAAA,UACAxK;AAAA,QACV;AAEQ,YADA6L,GAAmBC,GAAeE,CAAY,GAC1CX,MAAS,YAAYE,EAAW,SAASK;AAC3C,iBAAApB,EAAM,YAAY,IAClBwB,EAAa,aAAa,MAAM;AAC9B,YAAAxB,EAAM,YAAY,IACZxK,EAAS,IAAI,QAAQ,KACzBA,EAAS,OAAM,GAEjB,OAAOgM,EAAa,YACpBF,IAAgB;AAAA,UAClB,GACOR,GAAiB/B,CAAK;AACxB,QAAI8B,MAAS,YAAYE,EAAW,SAASK,IAClDI,EAAa,aAAa,CAAC7d,GAAI8d,GAAaC,MAAiB;AAC3D,gBAAMC,IAAqBC;AAAA,YACzB5B;AAAA,YACAsB;AAAA,UACd;AACY,UAAAK,EAAmB,OAAOL,EAAc,GAAG,CAAC,IAAIA,GAChD3d,EAAGkc,EAAU,IAAI,MAAM;AACrB,YAAA4B,EAAW,GACX9d,EAAGkc,EAAU,IAAI,QACjB,OAAOoB,EAAW,cAClBK,IAAgB;AAAA,UAClB,GACAL,EAAW,eAAe,MAAM;AAC9B,YAAAS,EAAY,GACZ,OAAOT,EAAW,cAClBK,IAAgB;AAAA,UAClB;AAAA,QACF,IAEAA,IAAgB;AAAA,MAEpB,MAAO,CAAIA,MACTA,IAAgB;AAElB,aAAOvC;AAAA,IACT;AAAA,EACF;AACF;AACA,SAAS4B,GAAoBnD,GAAU;AACrC,MAAIuB,IAAQvB,EAAS,CAAC;AACtB,MAAIA,EAAS,SAAS,GAAG;AACvB,QAAIqE,IAAW;AACf,eAAW7c,KAAKwY;AACd,UAAIxY,EAAE,SAASoc,GAAS;AACtB,YAAO5f,EAAQ,IAAI,aAAa,gBAAiBqgB,GAAU;AACzD,UAAAtM;AAAA,YACE;AAAA,UACZ;AACU;AAAA,QACF;AAGA,YAFAwJ,IAAQ/Z,GACR6c,IAAW,IACHrgB,EAAQ,IAAI,aAAa,aAAe;AAAA,MAClD;AAAA,EAEJ;AACA,SAAOud;AACT;AACK,MAAC+C,KAAiBvB;AACvB,SAASqB,GAAuB5B,GAAO5K,GAAO;AAC5C,QAAM,EAAE,eAAA2M,EAAa,IAAK/B;AAC1B,MAAI2B,IAAqBI,EAAc,IAAI3M,EAAM,IAAI;AACrD,SAAKuM,MACHA,IAAqC,uBAAO,OAAO,IAAI,GACvDI,EAAc,IAAI3M,EAAM,MAAMuM,CAAkB,IAE3CA;AACT;AACA,SAAST,GAAuB9L,GAAOlV,GAAO8f,GAAOxK,GAAUwM,GAAW;AACxE,QAAM;AAAA,IACJ,QAAAC;AAAA,IACA,MAAApB;AAAA,IACA,WAAAqB,IAAY;AAAA,IACZ,eAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,eAAAC;AAAA,IACA,mBAAAC;AAAA,EACJ,IAAM5iB,GACES,IAAM,OAAOyU,EAAM,GAAG,GACtBuM,IAAqBC,GAAuB5B,GAAO5K,CAAK,GACxD2N,IAAY,CAAC3H,GAAM3Y,MAAS;AAChC,IAAA2Y,KAAQjE;AAAA,MACNiE;AAAA,MACA5F;AAAA,MACA;AAAA,MACA/S;AAAA,IACN;AAAA,EACE,GACMugB,IAAgB,CAAC5H,GAAM3Y,MAAS;AACpC,UAAM+M,IAAO/M,EAAK,CAAC;AACnB,IAAAsgB,EAAU3H,GAAM3Y,CAAI,GAChBqB,EAAQsX,CAAI,IACVA,EAAK,MAAM,CAAC6H,OAAUA,GAAM,UAAU,CAAC,KAAGzT,EAAI,IACzC4L,EAAK,UAAU,KACxB5L,EAAI;AAAA,EAER,GACM2R,IAAQ;AAAA,IACZ,MAAAN;AAAA,IACA,WAAAqB;AAAA,IACA,YAAYve,GAAI;AACd,UAAIyX,IAAO+G;AACX,UAAI,CAACnC,EAAM;AACT,YAAIiC;AACF,UAAA7G,IAAOuH,KAAkBR;AAAA;AAEzB;AAGJ,MAAIxe,EAAGkc,EAAU,KACflc,EAAGkc,EAAU;AAAA,QACX;AAAA;AAAA,MAEV;AAEM,YAAMqD,IAAevB,EAAmBhhB,CAAG;AAC3C,MAAIuiB,KAAgB3B,GAAgBnM,GAAO8N,CAAY,KAAKA,EAAa,GAAGrD,EAAU,KACpFqD,EAAa,GAAGrD,EAAU,EAAC,GAE7BkD,EAAU3H,GAAM,CAACzX,CAAE,CAAC;AAAA,IACtB;AAAA,IACA,MAAMA,GAAI;AACR,UAAIyX,IAAOgH,GACPe,IAAYd,GACZe,KAAad;AACjB,UAAI,CAACtC,EAAM;AACT,YAAIiC;AACF,UAAA7G,IAAOwH,KAAYR,GACnBe,IAAYN,KAAiBR,GAC7Be,KAAaN,KAAqBR;AAAA;AAElC;AAGJ,UAAIe,KAAS;AACb,YAAM7T,KAAO7L,EAAGmc,EAAU,IAAI,CAACwD,OAAc;AAC3C,QAAID,OACJA,KAAS,IACLC,KACFP,EAAUK,IAAY,CAACzf,CAAE,CAAC,IAE1Bof,EAAUI,GAAW,CAACxf,CAAE,CAAC,GAEvBwd,EAAM,gBACRA,EAAM,aAAY,GAEpBxd,EAAGmc,EAAU,IAAI;AAAA,MACnB;AACA,MAAI1E,IACF4H,EAAc5H,GAAM,CAACzX,GAAI6L,EAAI,CAAC,IAE9BA,GAAI;AAAA,IAER;AAAA,IACA,MAAM7L,GAAI4f,GAAS;AACjB,YAAM/X,IAAO,OAAO4J,EAAM,GAAG;AAO7B,UANIzR,EAAGmc,EAAU,KACfnc,EAAGmc,EAAU;AAAA,QACX;AAAA;AAAA,MAEV,GAEUE,EAAM;AACR,eAAOuD,EAAO;AAEhB,MAAAR,EAAUR,GAAe,CAAC5e,CAAE,CAAC;AAC7B,UAAI0f,KAAS;AACb,YAAM7T,KAAO7L,EAAGkc,EAAU,IAAI,CAACyD,OAAc;AAC3C,QAAID,OACJA,KAAS,IACTE,EAAO,GACHD,KACFP,EAAUL,GAAkB,CAAC/e,CAAE,CAAC,IAEhCof,EAAUN,GAAc,CAAC9e,CAAE,CAAC,GAE9BA,EAAGkc,EAAU,IAAI,QACb8B,EAAmBnW,CAAI,MAAM4J,KAC/B,OAAOuM,EAAmBnW,CAAI;AAAA,MAElC;AACA,MAAAmW,EAAmBnW,CAAI,IAAI4J,GACvBoN,IACFQ,EAAcR,GAAS,CAAC7e,GAAI6L,EAAI,CAAC,IAEjCA,GAAI;AAAA,IAER;AAAA,IACA,MAAMgU,GAAQ;AACZ,YAAMC,IAASvC;AAAA,QACbsC;AAAA,QACAtjB;AAAA,QACA8f;AAAA,QACAxK;AAAA,QACAwM;AAAA,MACR;AACM,aAAIA,KAAWA,EAAUyB,CAAM,GACxBA;AAAA,IACT;AAAA,EACJ;AACE,SAAOtC;AACT;AACA,SAASL,GAAiB1L,GAAO;AAC/B,MAAIsO,GAAYtO,CAAK;AACnB,WAAAA,IAAQuO,GAAWvO,CAAK,GACxBA,EAAM,WAAW,MACVA;AAEX;AACA,SAAS4L,GAAgB5L,GAAO;AAC9B,MAAI,CAACsO,GAAYtO,CAAK;AACpB,WAAIwG,GAAWxG,EAAM,IAAI,KAAKA,EAAM,WAC3BuL,GAAoBvL,EAAM,QAAQ,IAEpCA;AAET,MAAIA,EAAM;AACR,WAAOA,EAAM,UAAU;AAEzB,QAAM,EAAE,WAAAmI,GAAW,UAAAC,EAAQ,IAAKpI;AAChC,MAAIoI,GAAU;AACZ,QAAID,IAAY;AACd,aAAOC,EAAS,CAAC;AAEnB,QAAID,IAAY,MAAMrZ,EAAWsZ,EAAS,OAAO;AAC/C,aAAOA,EAAS,QAAO;AAAA,EAE3B;AACF;AACA,SAAS6D,GAAmBjM,GAAO+L,GAAO;AACxC,EAAI/L,EAAM,YAAY,KAAKA,EAAM,aAC/BA,EAAM,aAAa+L,GACnBE,GAAmBjM,EAAM,UAAU,SAAS+L,CAAK,KACxC/L,EAAM,YAAY,OAC3BA,EAAM,UAAU,aAAa+L,EAAM,MAAM/L,EAAM,SAAS,GACxDA,EAAM,WAAW,aAAa+L,EAAM,MAAM/L,EAAM,UAAU,KAE1DA,EAAM,aAAa+L;AAEvB;AACA,SAAST,GAAyBlD,GAAUoG,IAAc,IAAOC,GAAW;AAC1E,MAAI1d,IAAM,CAAA,GACN2d,IAAqB;AACzB,WAAS,IAAI,GAAG,IAAItG,EAAS,QAAQ,KAAK;AACxC,QAAIuB,IAAQvB,EAAS,CAAC;AACtB,UAAM7c,IAAMkjB,KAAa,OAAO9E,EAAM,MAAM,OAAO8E,CAAS,IAAI,OAAO9E,EAAM,OAAO,OAAOA,EAAM,MAAM,CAAC;AACxG,IAAIA,EAAM,SAASgF,MACbhF,EAAM,YAAY,OAAK+E,KAC3B3d,IAAMA,EAAI;AAAA,MACRua,GAAyB3B,EAAM,UAAU6E,GAAajjB,CAAG;AAAA,IACjE,MACeijB,KAAe7E,EAAM,SAASqC,MACvCjb,EAAI,KAAKxF,KAAO,OAAOgjB,GAAW5E,GAAO,EAAE,KAAApe,GAAK,IAAIoe,CAAK;AAAA,EAE7D;AACA,MAAI+E,IAAqB;AACvB,aAAS,IAAI,GAAG,IAAI3d,EAAI,QAAQ;AAC9B,MAAAA,EAAI,CAAC,EAAE,YAAY;AAGvB,SAAOA;AACT;AAAA;AAGA,SAAS6d,GAAgB9kB,GAAS+kB,GAAc;AAC9C,SAAO/f,EAAWhF,CAAO;AAAA;AAAA;AAAA,IAGAsE,GAAO,EAAE,MAAMtE,EAAQ,KAAI,GAAI+kB,GAAc,EAAE,OAAO/kB,GAAS;AAAA,MACpFA;AACN;AACA,SAASglB,KAAQ;AACf,QAAMzkB,IAAIghB,GAAkB;AAC5B,SAAIhhB,KACMA,EAAE,WAAW,OAAO,YAAY,OAAO,MAAMA,EAAE,IAAI,CAAC,IAAIA,EAAE,IAAI,CAAC,OAC3D+B,EAAQ,IAAI,aAAa,gBACrC+T;AAAA,IACE;AAAA,EACN,GAES;AACT;AA6GA/P,GAAa,EAAG;AAChBA,GAAa,EAAG;AAEhB,MAAMke,KAAc,CAACtO,MAAUA,EAAM,KAAK;AAI1C,SAAS+O,GAAc/I,GAAMtQ,GAAQ;AACnC,EAAAsZ,GAAsBhJ,GAAM,MAAMtQ,CAAM;AAC1C;AACA,SAASsZ,GAAsBhJ,GAAMrQ,GAAMD,IAASuZ,GAAiB;AACnE,QAAMC,IAAclJ,EAAK,UAAUA,EAAK,QAAQ,MAAM;AACpD,QAAImJ,IAAUzZ;AACd,WAAOyZ,KAAS;AACd,UAAIA,EAAQ;AACV;AAEF,MAAAA,IAAUA,EAAQ;AAAA,IACpB;AACA,WAAOnJ,EAAI;AAAA,EACb;AAEA,MADAoJ,GAAWzZ,GAAMuZ,GAAaxZ,CAAM,GAChCA,GAAQ;AACV,QAAIyZ,IAAUzZ,EAAO;AACrB,WAAOyZ,KAAWA,EAAQ;AACxB,MAAIb,GAAYa,EAAQ,OAAO,KAAK,KAClCE,GAAsBH,GAAavZ,GAAMD,GAAQyZ,CAAO,GAE1DA,IAAUA,EAAQ;AAAA,EAEtB;AACF;AACA,SAASE,GAAsBrJ,GAAMrQ,GAAMD,GAAQ4Z,GAAe;AAChE,QAAMC,IAAWH;AAAA,IACfzZ;AAAA,IACAqQ;AAAA,IACAsJ;AAAA,IACA;AAAA;AAAA,EAEJ;AACE,EAAAE,GAAY,MAAM;AAChB,IAAAnhB,GAAOihB,EAAc3Z,CAAI,GAAG4Z,CAAQ;AAAA,EACtC,GAAG7Z,CAAM;AACX;AACA,SAAS0Z,GAAWzZ,GAAMqQ,GAAMtQ,IAASuZ,GAAiBQ,IAAU,IAAO;AACzE,MAAI/Z,GAAQ;AACV,UAAMqW,IAAQrW,EAAOC,CAAI,MAAMD,EAAOC,CAAI,IAAI,KACxCuZ,IAAclJ,EAAK,UAAUA,EAAK,QAAQ,IAAI3Y,MAAS;AAC3D,MAAAwH,GAAa;AACb,YAAM6a,IAAQC,GAAmBja,CAAM,GACjCnF,IAAMwR,GAA2BiE,GAAMtQ,GAAQC,GAAMtI,CAAI;AAC/D,aAAAqiB,EAAK,GACL5a,GAAa,GACNvE;AAAA,IACT;AACA,WAAIkf,IACF1D,EAAM,QAAQmD,CAAW,IAEzBnD,EAAM,KAAKmD,CAAW,GAEjBA;AAAA,EACT,WAAc9iB,EAAQ,IAAI,aAAa,cAAe;AACpD,UAAMwjB,IAAU9f,GAAa+R,GAAmBlM,CAAI,EAAE,QAAQ,UAAU,EAAE,CAAC;AAC3E,IAAAwK;AAAA,MACE,GAAGyP,CAAO;AAAA,IAChB;AAAA,EACE;AACF;AACA,MAAMC,KAAa,CAACC,MAAc,CAAC9J,GAAMtQ,IAASuZ,MAAoB;AACpE,GAAI,CAACc,MAAyBD,MAAc,SAC1CV,GAAWU,GAAW,IAAIziB,MAAS2Y,EAAK,GAAG3Y,CAAI,GAAGqI,CAAM;AAE5D,GACMsa,KAAgBH,GAAW,IAAI,GAC/BhF,KAAYgF,GAAW,GAAG,GAC1BI,KAAiBJ;AAAA,EACrB;AACF,GACMK,KAAYL,GAAW,GAAG,GAC1B/E,KAAkB+E;AAAA,EACtB;AACF,GACML,KAAcK,GAAW,IAAI,GAS7BM,KAAa,cACbC,KAAa,cAIbC,KAAyB,OAAO,IAAI,OAAO;AACjD,SAASC,GAAwBnL,GAAW;AAC1C,SAAIpW,EAASoW,CAAS,KACboL,GAAaJ,IAAYhL,GAAW,EAAK,KAAKA;AAIzD;AACA,SAASqL,GAAiB/iB,GAAM;AAC9B,SAAO8iB,GAAaH,IAAY3iB,CAAI;AACtC;AACA,SAAS8iB,GAAa5a,GAAMlI,GAAMgjB,IAAc,IAAMC,IAAqB,IAAO;AAChF,QAAMtQ,IAAuC6O;AAC7C,MAAI7O,GAAU;AACZ,UAAMuQ,IAAYvQ,EAAS;AAC3B,QAAIzK,MAASwa,IAAY;AACvB,YAAMS,IAAWnM;AAAA,QACfkM;AAAA,QACA;AAAA,MACR;AACM,UAAIC,MAAaA,MAAanjB,KAAQmjB,MAAalhB,GAASjC,CAAI,KAAKmjB,MAAa/gB,GAAWH,GAASjC,CAAI,CAAC;AACzG,eAAOkjB;AAAA,IAEX;AACA,UAAMpgB;AAAA;AAAA;AAAA,MAGJsgB,GAAQzQ,EAASzK,CAAI,KAAKgb,EAAUhb,CAAI,GAAGlI,CAAI;AAAA,MAC/CojB,GAAQzQ,EAAS,WAAWzK,CAAI,GAAGlI,CAAI;AAAA;AAEzC,QAAI,CAAC8C,KAAOmgB;AACV,aAAOC;AAET,QAAOvkB,EAAQ,IAAI,aAAa,gBAAiBqkB,KAAe,CAAClgB,GAAK;AACpE,YAAMugB,IAAQnb,MAASwa,KAAa;AAAA,8HACoF;AACxH,MAAAhQ,EAAO,qBAAqBxK,EAAK,MAAM,GAAG,EAAE,CAAC,KAAKlI,CAAI,GAAGqjB,CAAK,EAAE;AAAA,IAClE;AACA,WAAOvgB;AAAA,EACT,MAAO,CAAOnE,EAAQ,IAAI,aAAa,gBACrC+T;AAAA,IACE,UAAUtQ,GAAW8F,EAAK,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,EAC7C;AAEA;AACA,SAASkb,GAAQE,GAAUtjB,GAAM;AAC/B,SAAOsjB,MAAaA,EAAStjB,CAAI,KAAKsjB,EAASrhB,GAASjC,CAAI,CAAC,KAAKsjB,EAASlhB,GAAWH,GAASjC,CAAI,CAAC,CAAC;AACvG;AAmKOrB,EAAQ,IAAI;AA8qBnB,IAAI4kB,KAAa;AACjB,SAASC,GAAQ1lB,GAAKvC,GAAO;AAC3B,MAAI,CAACimB;AACH,IAAO7iB,EAAQ,IAAI,aAAa,gBAC9B+T,EAAO,4CAA4C;AAAA,OAEhD;AACL,QAAI+Q,IAAWjC,EAAgB;AAC/B,UAAMkC,IAAiBlC,EAAgB,UAAUA,EAAgB,OAAO;AACxE,IAAIkC,MAAmBD,MACrBA,IAAWjC,EAAgB,WAAW,OAAO,OAAOkC,CAAc,IAEpED,EAAS3lB,CAAG,IAAIvC;AAAA,EAClB;AACF;AACA,SAASooB,GAAO7lB,GAAK2R,GAAcmU,IAAwB,IAAO;AAChE,QAAMjR,IAAW6O,KAAmB9I;AACpC,MAAI/F,KAAY4Q,IAAY;AAC1B,QAAIE,IAAuD9Q,IAAWA,EAAS,UAAU,QAAQA,EAAS,KAAKA,EAAS,MAAM,cAAcA,EAAS,MAAM,WAAW,WAAWA,EAAS,OAAO,WAAW;AAC5M,QAAI8Q,KAAY3lB,KAAO2lB;AACrB,aAAOA,EAAS3lB,CAAG;AACd,QAAI,UAAU,SAAS;AAC5B,aAAO8lB,KAAyBviB,EAAWoO,CAAY,IAAIA,EAAa,KAAKkD,KAAYA,EAAS,KAAK,IAAIlD;AACtG,IAAO9Q,EAAQ,IAAI,aAAa,gBACrC+T,EAAO,cAAc,OAAO5U,CAAG,CAAC,cAAc;AAAA,EAElD,MAAO,CAAOa,EAAQ,IAAI,aAAa,gBACrC+T,EAAO,oEAAoE;AAE/E;AACA,MAAMmR,KAAsB,CAAA,GAEtBC,KAAmB,CAACtmB,MAAQ,OAAO,eAAeA,CAAG,MAAMqmB,IAwjB3DvI,KAAwByI;AA43C9B,SAASrI,GAAuBlC,GAAIC,GAAI1M,IAAU,IAAO;AACvD,QAAMiX,IAAMxK,EAAG,UACTyK,IAAMxK,EAAG;AACf,MAAIxY,EAAQ+iB,CAAG,KAAK/iB,EAAQgjB,CAAG;AAC7B,aAAS,IAAI,GAAG,IAAID,EAAI,QAAQ,KAAK;AACnC,YAAME,IAAKF,EAAI,CAAC;AAChB,UAAIG,IAAKF,EAAI,CAAC;AACd,MAAIE,EAAG,YAAY,KAAK,CAACA,EAAG,qBACtBA,EAAG,aAAa,KAAKA,EAAG,cAAc,QACxCA,IAAKF,EAAI,CAAC,IAAIG,GAAeH,EAAI,CAAC,CAAC,GACnCE,EAAG,KAAKD,EAAG,KAET,CAACnX,KAAWoX,EAAG,cAAc,MAC/BzI,GAAuBwI,GAAIC,CAAE,IAE7BA,EAAG,SAASE,OACdF,EAAG,KAAKD,EAAG,KAETC,EAAG,SAAS5F,KAAW,CAAC4F,EAAG,OAC7BA,EAAG,KAAKD,EAAG,KAENvlB,EAAQ,IAAI,aAAa,gBAC9BwlB,EAAG,OAAOA,EAAG,GAAG,UAAUA;AAAA,IAE9B;AAEJ;AAyDA,MAAMG,KAAgB,OAAO,IAAI,OAAO,GAClCC,KAAgB,MAAM;AAC1B;AACE,UAAMxH,IAAM4G,GAAOW,EAAa;AAChC,WAAKvH,KACApe,EAAQ,IAAI,aAAa,gBAAiB+T;AAAA,MAC3C;AAAA,IACR,GAEWqK;AAAA,EACT;AACF;AACA,SAASyH,GAAYC,GAASpoB,GAAS;AACrC,SAAOqoB,GAAQD,GAAS,MAAMpoB,CAAO;AACvC;AACA,SAASsoB,GAAMrnB,GAAQoT,GAAIrU,GAAS;AAClC,SAAOsC,EAAQ,IAAI,aAAa,gBAAiB,CAAC0C,EAAWqP,CAAE,KAC7DgC;AAAA,IACE;AAAA,EACN,GAESgS,GAAQpnB,GAAQoT,GAAIrU,CAAO;AACpC;AACA,SAASqoB,GAAQpnB,GAAQoT,GAAIrU,IAAUmE,IAAW;AAChD,QAAM,EAAE,WAAAmQ,GAAW,MAAAC,GAAM,OAAAgU,GAAO,MAAA/T,EAAI,IAAKxU;AACzC,EAAOsC,EAAQ,IAAI,aAAa,gBAAiB,CAAC+R,MAC5CC,MAAc,UAChB+B;AAAA,IACE;AAAA,EACR,GAEQ9B,MAAS,UACX8B;AAAA,IACE;AAAA,EACR,GAEQ7B,MAAS,UACX6B;AAAA,IACE;AAAA,EACR;AAGE,QAAMmS,IAAmBlkB,GAAO,CAAA,GAAItE,CAAO;AAC3C,EAAOsC,EAAQ,IAAI,aAAa,iBAAekmB,EAAiB,SAASnS;AACzE,QAAMoS,IAAkBpU,KAAMC,KAAa,CAACD,KAAMkU,MAAU;AAC5D,MAAIG;AACJ,MAAIzC;AACF,QAAIsC,MAAU,QAAQ;AACpB,YAAM7H,IAAMwH,GAAa;AACzB,MAAAQ,IAAahI,EAAI,qBAAqBA,EAAI,mBAAmB,CAAA;AAAA,IAC/D,WAAW,CAAC+H,GAAiB;AAC3B,YAAME,IAAkB,MAAM;AAAA,MAC9B;AACA,aAAAA,EAAgB,OAAOvkB,IACvBukB,EAAgB,SAASvkB,IACzBukB,EAAgB,QAAQvkB,IACjBukB;AAAA,IACT;AAAA;AAEF,QAAMrS,IAAW6O;AACjB,EAAAqD,EAAiB,OAAO,CAAC/iB,GAAIoG,GAAMtI,MAAS0U,GAA2BxS,GAAI6Q,GAAUzK,GAAMtI,CAAI;AAC/F,MAAIqlB,IAAQ;AACZ,EAAIL,MAAU,SACZC,EAAiB,YAAY,CAAC7S,MAAQ;AACpC,IAAAsJ,GAAsBtJ,GAAKW,KAAYA,EAAS,QAAQ;AAAA,EAC1D,IACSiS,MAAU,WACnBK,IAAQ,IACRJ,EAAiB,YAAY,CAAC7S,GAAKkT,MAAe;AAChD,IAAIA,IACFlT,EAAG,IAEHmE,GAASnE,CAAG;AAAA,EAEhB,IAEF6S,EAAiB,aAAa,CAAC7S,MAAQ;AACrC,IAAItB,MACFsB,EAAI,SAAS,IAEXiT,MACFjT,EAAI,SAAS,GACTW,MACFX,EAAI,KAAKW,EAAS,KAClBX,EAAI,IAAIW;AAAA,EAGd;AACA,QAAMb,IAAcrB,GAAQnT,GAAQoT,GAAImU,CAAgB;AACxD,SAAIvC,OACEyC,IACFA,EAAW,KAAKjT,CAAW,IAClBgT,KACThT,EAAW,IAGRA;AACT;AAocA,MAAMqT,KAAa,CAACjd,MAASA,EAAK;AAClC,SAAS6b,GAAwBjiB,GAAIsjB,GAAU;AAC7C,EAAIA,KAAYA,EAAS,gBACnBnkB,EAAQa,CAAE,IACZsjB,EAAS,QAAQ,KAAK,GAAGtjB,CAAE,IAE3BsjB,EAAS,QAAQ,KAAKtjB,CAAE,IAG1B0U,GAAiB1U,CAAE;AAEvB;AACK,MAACof,KAAW,OAAO,IAAI,OAAO,GAC7BmD,KAAO,OAAO,IAAI,OAAO,GACzB9F,IAAU,OAAO,IAAI,OAAO;AAUlC,SAAS8G,GAAQ9pB,GAAO;AACtB,SAAOA,IAAQA,EAAM,gBAAgB,KAAO;AAC9C;AACA,SAASmjB,GAAgBlF,GAAIC,GAAI;AAC/B,MAAO9a,EAAQ,IAAI,aAAa,gBAAiB8a,EAAG,YAAY,KAAKD,EAAG,WAAW;AACjF,UAAMtB,IAAiBhB,GAAmB,IAAIuC,EAAG,IAAI;AACrD,QAAIvB,KAAkBA,EAAe,IAAIsB,EAAG,SAAS;AACnD,aAAAA,EAAG,aAAa,MAChBC,EAAG,aAAa,MACT;AAAA,EAEX;AACA,SAAOD,EAAG,SAASC,EAAG,QAAQD,EAAG,QAAQC,EAAG;AAC9C;AACA,MAAM6L,KAA+B,IAAI1lB,MAChC2lB;AAAA,EACL,GAAG3lB;AACP,GAEM4lB,KAAe,CAAC,EAAE,KAAA1nB,EAAG,MAAOA,KAAoB,MAChD2nB,KAAe,CAAC;AAAA,EACpB,KAAKC;AAAA,EACL,SAAAC;AAAA,EACA,SAAAC;AACF,OACM,OAAOF,KAAS,aAClBA,IAAO,KAAKA,IAEPA,KAAQ,OAAOpkB,EAASokB,CAAI,KAAKna,EAAMma,CAAI,KAAKrkB,EAAWqkB,CAAI,IAAI,EAAE,GAAGhN,IAA0B,GAAGgN,GAAM,GAAGC,GAAS,GAAG,CAAC,CAACC,MAAYF,IAAO;AAExJ,SAASG,GAAgB3d,GAAM7K,IAAQ,MAAMsd,IAAW,MAAMmL,IAAY,GAAGC,IAAe,MAAMrL,IAAYxS,MAASgZ,KAAW,IAAI,GAAG8E,IAAc,IAAOC,IAAgC,IAAO;AACnM,QAAM1T,IAAQ;AAAA,IACZ,aAAa;AAAA,IACb,UAAU;AAAA,IACV,MAAArK;AAAA,IACA,OAAA7K;AAAA,IACA,KAAKA,KAASmoB,GAAanoB,CAAK;AAAA,IAChC,KAAKA,KAASooB,GAAapoB,CAAK;AAAA,IAChC,SAASsb;AAAA,IACT,cAAc;AAAA,IACd,UAAAgC;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,cAAc;AAAA,IACd,aAAa;AAAA,IACb,WAAAD;AAAA,IACA,WAAAoL;AAAA,IACA,cAAAC;AAAA,IACA,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,KAAKrN;AAAA,EACT;AACE,SAAIuN,KACFC,GAAkB3T,GAAOoI,CAAQ,GAC7BD,IAAY,OACdxS,EAAK,UAAUqK,CAAK,KAEboI,MACTpI,EAAM,aAAajR,EAASqZ,CAAQ,IAAI,IAAI,KAEvChc,EAAQ,IAAI,aAAa,gBAAiB4T,EAAM,QAAQA,EAAM,OACnEG,EAAO,qDAAqDH,EAAM,IAAI,GAajEA;AACT;AACK,MAAC4T,KAAiBxnB,EAAQ,IAAI,aAAa,eAAgB2mB,KAA+BC;AAC/F,SAASA,GAAard,GAAM7K,IAAQ,MAAMsd,IAAW,MAAMmL,IAAY,GAAGC,IAAe,MAAMC,IAAc,IAAO;AAOlH,OANI,CAAC9d,KAAQA,MAAS0a,QACbjkB,EAAQ,IAAI,aAAa,gBAAiB,CAACuJ,KAChDwK,EAAO,2CAA2CxK,CAAI,GAAG,GAE3DA,IAAOqW,IAEL8G,GAAQnd,CAAI,GAAG;AACjB,UAAMke,IAAStF;AAAA,MACb5Y;AAAA,MACA7K;AAAA,MACA;AAAA;AAAA,IAEN;AACI,WAAIsd,KACFuL,GAAkBE,GAAQzL,CAAQ,GASpCyL,EAAO,YAAY,IACZA;AAAA,EACT;AAIA,MAHIzO,GAAiBzP,CAAI,MACvBA,IAAOA,EAAK,YAEV7K,GAAO;AACT,IAAAA,IAAQgpB,GAAmBhpB,CAAK;AAChC,QAAI,EAAE,OAAOipB,GAAO,OAAAC,EAAK,IAAKlpB;AAC9B,IAAIipB,KAAS,CAAChlB,EAASglB,CAAK,MAC1BjpB,EAAM,QAAQmG,GAAe8iB,CAAK,IAEhChrB,EAASirB,CAAK,MACZ9b,GAAQ8b,CAAK,KAAK,CAACtlB,EAAQslB,CAAK,MAClCA,IAAQ5lB,GAAO,CAAA,GAAI4lB,CAAK,IAE1BlpB,EAAM,QAAQwF,GAAe0jB,CAAK;AAAA,EAEtC;AACA,QAAM7L,IAAYpZ,EAAS4G,CAAI,IAAI,IAAIid,GAAWjd,CAAI,IAAI,MAAM6Q,GAAW7Q,CAAI,IAAI,KAAK5M,EAAS4M,CAAI,IAAI,IAAI7G,EAAW6G,CAAI,IAAI,IAAI;AACpI,SAAOvJ,EAAQ,IAAI,aAAa,gBAAiB+b,IAAY,KAAKjQ,GAAQvC,CAAI,MAC5EA,IAAOe,EAAMf,CAAI,GACjBwK;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEAxK;AAAA,EACN,IAES2d;AAAA,IACL3d;AAAA,IACA7K;AAAA,IACAsd;AAAA,IACAmL;AAAA,IACAC;AAAA,IACArL;AAAA,IACAsL;AAAA,IACA;AAAA,EACJ;AACA;AACA,SAASK,GAAmBhpB,GAAO;AACjC,SAAKA,IACEoN,GAAQpN,CAAK,KAAKymB,GAAiBzmB,CAAK,IAAIsD,GAAO,CAAA,GAAItD,CAAK,IAAIA,IADpD;AAErB;AACA,SAASyjB,GAAWvO,GAAOiU,GAAYC,IAAW,IAAOC,IAAkB,IAAO;AAChF,QAAM,EAAE,OAAArpB,GAAO,KAAKqoB,GAAM,WAAAI,GAAW,UAAAnL,GAAU,YAAAgM,EAAU,IAAKpU,GACxDqU,IAAcJ,IAAaK,GAAWxpB,KAAS,CAAA,GAAImpB,CAAU,IAAInpB,GACjE+oB,IAAS;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,IACV,MAAM7T,EAAM;AAAA,IACZ,OAAOqU;AAAA,IACP,KAAKA,KAAepB,GAAaoB,CAAW;AAAA,IAC5C,KAAKJ,KAAcA,EAAW;AAAA;AAAA;AAAA;AAAA,MAI5BC,KAAYf,IAAOzkB,EAAQykB,CAAI,IAAIA,EAAK,OAAOD,GAAae,CAAU,CAAC,IAAI,CAACd,GAAMD,GAAae,CAAU,CAAC,IAAIf,GAAae,CAAU;AAAA,QACnId;AAAA,IACJ,SAASnT,EAAM;AAAA,IACf,cAAcA,EAAM;AAAA,IACpB,UAAa5T,EAAQ,IAAI,aAAa,gBAAiBmnB,MAAc,MAAM7kB,EAAQ0Z,CAAQ,IAAIA,EAAS,IAAImM,EAAc,IAAInM;AAAA,IAC9H,QAAQpI,EAAM;AAAA,IACd,aAAaA,EAAM;AAAA,IACnB,cAAcA,EAAM;AAAA,IACpB,aAAaA,EAAM;AAAA,IACnB,WAAWA,EAAM;AAAA;AAAA;AAAA;AAAA;AAAA,IAKjB,WAAWiU,KAAcjU,EAAM,SAAS2O,KAAW4E,MAAc,KAAK,KAAKA,IAAY,KAAKA;AAAA,IAC5F,cAAcvT,EAAM;AAAA,IACpB,iBAAiBA,EAAM;AAAA,IACvB,YAAYA,EAAM;AAAA,IAClB,MAAMA,EAAM;AAAA,IACZ,YAAAoU;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAWpU,EAAM;AAAA,IACjB,UAAUA,EAAM;AAAA,IAChB,WAAWA,EAAM,aAAauO,GAAWvO,EAAM,SAAS;AAAA,IACxD,YAAYA,EAAM,cAAcuO,GAAWvO,EAAM,UAAU;AAAA,IAC3D,IAAIA,EAAM;AAAA,IACV,QAAQA,EAAM;AAAA,IACd,KAAKA,EAAM;AAAA,IACX,IAAIA,EAAM;AAAA,EACd;AACE,SAAIoU,KAAcD,KAChBlI;AAAA,IACE4H;AAAA,IACAO,EAAW,MAAMP,CAAM;AAAA,EAC7B,GAESA;AACT;AACA,SAASU,GAAevU,GAAO;AAC7B,QAAM6T,IAAStF,GAAWvO,CAAK;AAC/B,SAAItR,EAAQsR,EAAM,QAAQ,MACxB6T,EAAO,WAAW7T,EAAM,SAAS,IAAIuU,EAAc,IAE9CV;AACT;AACA,SAASW,GAAgBC,IAAO,KAAKC,IAAO,GAAG;AAC7C,SAAOd,GAAY9B,IAAM,MAAM2C,GAAMC,CAAI;AAC3C;AAiBA,SAAS7C,GAAelI,GAAO;AAC7B,SAAOA,EAAM,OAAO,QAAQA,EAAM,cAAc,MAAMA,EAAM,OAAOA,IAAQ4E,GAAW5E,CAAK;AAC7F;AACA,SAASgK,GAAkB3T,GAAOoI,GAAU;AAC1C,MAAIzS,IAAO;AACX,QAAM,EAAE,WAAAwS,EAAS,IAAKnI;AACtB,MAAIoI,KAAY;AACd,IAAAA,IAAW;AAAA,WACF1Z,EAAQ0Z,CAAQ;AACzB,IAAAzS,IAAO;AAAA,WACE,OAAOyS,KAAa;AAC7B,QAAID,IAAa,IAAS;AACxB,YAAMwM,IAAOvM,EAAS;AACtB,MAAIuM,MACFA,EAAK,OAAOA,EAAK,KAAK,KACtBhB,GAAkB3T,GAAO2U,GAAM,GAC/BA,EAAK,OAAOA,EAAK,KAAK;AAExB;AAAA,IACF;AACE,MAAAhf,IAAO,IAEH,CADayS,EAAS,KACT,CAACmJ,GAAiBnJ,CAAQ,MACzCA,EAAS,OAAOjC;AAAA,MAUf,CAAIrX,EAAWsZ,CAAQ,KAC5BA,IAAW,EAAE,SAASA,GAAU,MAAMjC,GAAwB,GAC9DxQ,IAAO,OAEPyS,IAAW,OAAOA,CAAQ,GACtBD,IAAY,MACdxS,IAAO,IACPyS,IAAW,CAACoM,GAAgBpM,CAAQ,CAAC,KAErCzS,IAAO;AAGX,EAAAqK,EAAM,WAAWoI,GACjBpI,EAAM,aAAarK;AACrB;AACA,SAAS2e,MAAcjnB,GAAM;AAC3B,QAAM0D,IAAM,CAAA;AACZ,WAAS1G,IAAI,GAAGA,IAAIgD,EAAK,QAAQhD,KAAK;AACpC,UAAMuqB,IAAUvnB,EAAKhD,CAAC;AACtB,eAAWkB,KAAOqpB;AAChB,UAAIrpB,MAAQ;AACV,QAAIwF,EAAI,UAAU6jB,EAAQ,UACxB7jB,EAAI,QAAQE,GAAe,CAACF,EAAI,OAAO6jB,EAAQ,KAAK,CAAC;AAAA,eAE9CrpB,MAAQ;AACjB,QAAAwF,EAAI,QAAQT,GAAe,CAACS,EAAI,OAAO6jB,EAAQ,KAAK,CAAC;AAAA,eAC5CzmB,GAAK5C,CAAG,GAAG;AACpB,cAAMspB,IAAW9jB,EAAIxF,CAAG,GAClBupB,IAAWF,EAAQrpB,CAAG;AAC5B,QAAIupB,KAAYD,MAAaC,KAAY,EAAEpmB,EAAQmmB,CAAQ,KAAKA,EAAS,SAASC,CAAQ,OACxF/jB,EAAIxF,CAAG,IAAIspB,IAAW,CAAA,EAAG,OAAOA,GAAUC,CAAQ,IAAIA;AAAA,MAE1D,MAAO,CAAIvpB,MAAQ,OACjBwF,EAAIxF,CAAG,IAAIqpB,EAAQrpB,CAAG;AAAA,EAG5B;AACA,SAAOwF;AACT;AAoGA,IAAIke,IAAkB;AACjB,MAAC5D,KAAqB,MAAM4D,KAAmB9I;AACpD,IAAI4O;AAEJ;AACE,QAAMC,IAAI5kB,GAAa,GACjB6kB,IAAuB,CAAC1pB,GAAK6R,MAAW;AAC5C,QAAI8X;AACJ,YAAMA,IAAUF,EAAEzpB,CAAG,OAAI2pB,IAAUF,EAAEzpB,CAAG,IAAI,CAAA,IAC5C2pB,EAAQ,KAAK9X,CAAM,GACZ,CAAC3L,MAAM;AACZ,MAAIyjB,EAAQ,SAAS,IAAGA,EAAQ,QAAQ,CAACC,MAAQA,EAAI1jB,CAAC,CAAC,IAClDyjB,EAAQ,CAAC,EAAEzjB,CAAC;AAAA,IACnB;AAAA,EACF;AACA,EAAAsjB,KAA6BE;AAAA,IAC3B;AAAA,IACA,CAACxjB,MAAMwd,IAAkBxd;AAAA,EAC7B,GACuBwjB;AAAA,IACnB;AAAA,IACA,CAACxjB,MAAMse,KAAwBte;AAAA,EACnC;AACA;AACA,MAAMke,KAAqB,CAACvP,MAAa;AACvC,QAAMnM,IAAOgb;AACb,SAAA8F,GAA2B3U,CAAQ,GACnCA,EAAS,MAAM,GAAE,GACV,MAAM;AACX,IAAAA,EAAS,MAAM,IAAG,GAClB2U,GAA2B9gB,CAAI;AAAA,EACjC;AACF;AAgBA,IAAI8b,KAAwB;AA0IE3jB,EAAQ,IAAI;AA8F1C,MAAMgpB,KAAa,mBACbC,KAAW,CAACvnB,MAAQA,EAAI,QAAQsnB,IAAY,CAACxlB,MAAMA,EAAE,YAAW,CAAE,EAAE,QAAQ,SAAS,EAAE;AAC7F,SAAS6U,GAAiBkM,GAAW2E,IAAkB,IAAM;AAC3D,SAAOxmB,EAAW6hB,CAAS,IAAIA,EAAU,eAAeA,EAAU,OAAOA,EAAU,QAAQ2E,KAAmB3E,EAAU;AAC1H;AACA,SAAShQ,GAAoBP,GAAUuQ,GAAWrP,IAAS,IAAO;AAChE,MAAI7T,IAAOgX,GAAiBkM,CAAS;AACrC,MAAI,CAACljB,KAAQkjB,EAAU,QAAQ;AAC7B,UAAMlnB,IAAQknB,EAAU,OAAO,MAAM,iBAAiB;AACtD,IAAIlnB,MACFgE,IAAOhE,EAAM,CAAC;AAAA,EAElB;AACA,MAAI,CAACgE,KAAQ2S,KAAYA,EAAS,QAAQ;AACxC,UAAMmV,IAAoB,CAACxE,MAAa;AACtC,iBAAWxlB,KAAOwlB;AAChB,YAAIA,EAASxlB,CAAG,MAAMolB;AACpB,iBAAOplB;AAAA,IAGb;AACA,IAAAkC,IAAO8nB;AAAA,MACLnV,EAAS,cAAcA,EAAS,OAAO,KAAK;AAAA,IAClD,KAASmV,EAAkBnV,EAAS,WAAW,UAAU;AAAA,EACvD;AACA,SAAO3S,IAAO4nB,GAAS5nB,CAAI,IAAI6T,IAAS,QAAQ;AAClD;AACA,SAAS8D,GAAiBpc,GAAO;AAC/B,SAAO8F,EAAW9F,CAAK,KAAK,eAAeA;AAC7C;AACK,MAACwsB,KAAW,CAACjY,GAAiBC,MAAiB;AAClD,QAAM5N,IAAI0N,GAAWC,GAAiBC,GAAcuS,EAAqB;AACzE,MAAO3jB,EAAQ,IAAI,aAAa,cAAe;AAC7C,UAAM/B,IAAIghB,GAAkB;AAC5B,IAAIhhB,KAAKA,EAAE,WAAW,OAAO,0BAC3BuF,EAAE,iBAAiB;AAAA,EAEvB;AACA,SAAOA;AACT;AACA,SAAS6lB,GAAE9f,GAAM+f,GAAiBtN,GAAU;AAC1C,QAAMpW,IAAI,UAAU;AACpB,SAAIA,MAAM,IACJjJ,EAAS2sB,CAAe,KAAK,CAAChnB,EAAQgnB,CAAe,IACnD5C,GAAQ4C,CAAe,IAClB9B,GAAYje,GAAM,MAAM,CAAC+f,CAAe,CAAC,IAE3C9B,GAAYje,GAAM+f,CAAe,IAEjC9B,GAAYje,GAAM,MAAM+f,CAAe,KAG5C1jB,IAAI,IACNoW,IAAW,MAAM,UAAU,MAAM,KAAK,WAAW,CAAC,IACzCpW,MAAM,KAAK8gB,GAAQ1K,CAAQ,MACpCA,IAAW,CAACA,CAAQ,IAEfwL,GAAYje,GAAM+f,GAAiBtN,CAAQ;AAEtD;AACA,SAASuN,KAAsB;AAC7B,MAAQvpB,EAAQ,IAAI,aAAa,gBAAiB,OAAO,SAAW;AAClE;AAEF,QAAMwpB,IAAW,EAAE,OAAO,gBAAe,GACnCC,IAAc,EAAE,OAAO,gBAAe,GACtCC,IAAc,EAAE,OAAO,gBAAe,GACtCC,IAAe,EAAE,OAAO,gBAAe,GACvCC,IAAY;AAAA,IAChB,wBAAwB;AAAA,IACxB,OAAO/qB,GAAK;AACV,UAAI,CAAClC,EAASkC,CAAG;AACf,eAAO;AAET,UAAIA,EAAI;AACN,eAAO,CAAC,OAAO2qB,GAAU,aAAa;AACjC,UAAI5c,EAAM/N,CAAG,GAAG;AACrB,QAAA4J,GAAa;AACb,cAAM7L,IAAQiC,EAAI;AAClB,eAAA6J,GAAa,GACN;AAAA,UACL;AAAA,UACA,CAAA;AAAA,UACA,CAAC,QAAQ8gB,GAAUK,EAAWhrB,CAAG,CAAC;AAAA,UAClC;AAAA,UACAirB,EAAYltB,CAAK;AAAA,UACjB;AAAA,QACV;AAAA,MACM,OAAO;AAAA,YAAI8S,GAAW7Q,CAAG;AACvB,iBAAO;AAAA,YACL;AAAA,YACA,CAAA;AAAA,YACA,CAAC,QAAQ2qB,GAAUjf,EAAU1L,CAAG,IAAI,oBAAoB,UAAU;AAAA,YAClE;AAAA,YACAirB,EAAYjrB,CAAG;AAAA,YACf,IAAIoO,GAAWpO,CAAG,IAAI,gBAAgB,EAAE;AAAA,UAClD;AACa,YAAIoO,GAAWpO,CAAG;AACvB,iBAAO;AAAA,YACL;AAAA,YACA,CAAA;AAAA,YACA,CAAC,QAAQ2qB,GAAUjf,EAAU1L,CAAG,IAAI,oBAAoB,UAAU;AAAA,YAClE;AAAA,YACAirB,EAAYjrB,CAAG;AAAA,YACf;AAAA,UACV;AAAA;AAEM,aAAO;AAAA,IACT;AAAA,IACA,QAAQA,GAAK;AACX,aAAOA,KAAOA,EAAI;AAAA,IACpB;AAAA,IACA,KAAKA,GAAK;AACR,UAAIA,KAAOA,EAAI;AACb,eAAO;AAAA,UACL;AAAA,UACA,CAAA;AAAA,UACA,GAAGkrB,EAAelrB,EAAI,CAAC;AAAA,QACjC;AAAA,IAEI;AAAA,EACJ;AACE,WAASkrB,EAAe/V,GAAU;AAChC,UAAMgW,IAAS,CAAA;AACf,IAAIhW,EAAS,KAAK,SAASA,EAAS,SAClCgW,EAAO,KAAKC,EAAoB,SAAS3f,EAAM0J,EAAS,KAAK,CAAC,CAAC,GAE7DA,EAAS,eAAenS,MAC1BmoB,EAAO,KAAKC,EAAoB,SAASjW,EAAS,UAAU,CAAC,GAE3DA,EAAS,SAASnS,MACpBmoB,EAAO,KAAKC,EAAoB,QAAQ3f,EAAM0J,EAAS,IAAI,CAAC,CAAC;AAE/D,UAAMhM,IAAYkiB,EAAYlW,GAAU,UAAU;AAClD,IAAIhM,KACFgiB,EAAO,KAAKC,EAAoB,YAAYjiB,CAAS,CAAC;AAExD,UAAMmb,IAAW+G,EAAYlW,GAAU,QAAQ;AAC/C,WAAImP,KACF6G,EAAO,KAAKC,EAAoB,YAAY9G,CAAQ,CAAC,GAEvD6G,EAAO,KAAK;AAAA,MACV;AAAA,MACA,CAAA;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,UACE,OAAOL,EAAa,QAAQ;AAAA,QACtC;AAAA,QACQ;AAAA,MACR;AAAA,MACM,CAAC,UAAU,EAAE,QAAQ3V,EAAQ,CAAE;AAAA,IACrC,CAAK,GACMgW;AAAA,EACT;AACA,WAASC,EAAoB1gB,GAAMD,GAAQ;AAEzC,WADAA,IAAStH,GAAO,CAAA,GAAIsH,CAAM,GACrB,OAAO,KAAKA,CAAM,EAAE,SAGlB;AAAA,MACL;AAAA,MACA,EAAE,OAAO,yCAAwC;AAAA,MACjD;AAAA,QACE;AAAA,QACA;AAAA,UACE,OAAO;AAAA,QACjB;AAAA,QACQC;AAAA,MACR;AAAA,MACM;AAAA,QACE;AAAA,QACA;AAAA,UACE,OAAO;AAAA,QACjB;AAAA,QACQ,GAAG,OAAO,KAAKD,CAAM,EAAE,IAAI,CAACnK,MACnB;AAAA,UACL;AAAA,UACA,CAAA;AAAA,UACA,CAAC,QAAQwqB,GAAcxqB,IAAM,IAAI;AAAA,UACjC2qB,EAAYxgB,EAAOnK,CAAG,GAAG,EAAK;AAAA,QAC1C,CACS;AAAA,MACT;AAAA,IACA,IA1Ba,CAAC,QAAQ,EAAE;AAAA,EA2BtB;AACA,WAAS2qB,EAAYzkB,GAAG8kB,IAAQ,IAAM;AACpC,WAAI,OAAO9kB,KAAM,WACR,CAAC,QAAQokB,GAAapkB,CAAC,IACrB,OAAOA,KAAM,WACf,CAAC,QAAQqkB,GAAa,KAAK,UAAUrkB,CAAC,CAAC,IACrC,OAAOA,KAAM,YACf,CAAC,QAAQskB,GAActkB,CAAC,IACtB1I,EAAS0I,CAAC,IACZ,CAAC,UAAU,EAAE,QAAQ8kB,IAAQ7f,EAAMjF,CAAC,IAAIA,GAAG,IAE3C,CAAC,QAAQqkB,GAAa,OAAOrkB,CAAC,CAAC;AAAA,EAE1C;AACA,WAAS6kB,EAAYlW,GAAUzK,GAAM;AACnC,UAAM6gB,IAAOpW,EAAS;AACtB,QAAItR,EAAW0nB,CAAI;AACjB;AAEF,UAAMC,IAAY,CAAA;AAClB,eAAWlrB,KAAO6U,EAAS;AACzB,MAAIsW,EAAYF,GAAMjrB,GAAKoK,CAAI,MAC7B8gB,EAAUlrB,CAAG,IAAI6U,EAAS,IAAI7U,CAAG;AAGrC,WAAOkrB;AAAA,EACT;AACA,WAASC,EAAYF,GAAMjrB,GAAKoK,GAAM;AACpC,UAAMghB,IAAOH,EAAK7gB,CAAI;AAOtB,QANIjH,EAAQioB,CAAI,KAAKA,EAAK,SAASprB,CAAG,KAAKxC,EAAS4tB,CAAI,KAAKprB,KAAOorB,KAGhEH,EAAK,WAAWE,EAAYF,EAAK,SAASjrB,GAAKoK,CAAI,KAGnD6gB,EAAK,UAAUA,EAAK,OAAO,KAAK,CAACI,MAAMF,EAAYE,GAAGrrB,GAAKoK,CAAI,CAAC;AAClE,aAAO;AAAA,EAEX;AACA,WAASsgB,EAAWxkB,GAAG;AACrB,WAAIkF,EAAUlF,CAAC,IACN,eAELA,EAAE,SACG,gBAEF;AAAA,EACT;AACA,EAAI,OAAO,qBACT,OAAO,mBAAmB,KAAKukB,CAAS,IAExC,OAAO,qBAAqB,CAACA,CAAS;AAE1C;AAEK,MAACa,KAAUzqB,EAAQ,IAAI,aAAa,eAAgB+T,IAASjS;AAC/D9B,EAAQ,IAAI;AACZA,EAAQ,IAAI;AAMf,SAAS0qB,KAAU;AAEf,EAAAnB,GAAmB;AAEvB;AACOvpB,EAAQ,IAAI,aAAa,gBAC9B0qB,GAAO;AC73PT,IAAIC,KAAc,CAACnlB,MAAQ;AACzB,QAAM,UAAUA,CAAG;AACrB,GACIolB,KAAgB,CAAC/rB,GAAKgsB,GAAQrlB,MAAQqlB,EAAO,IAAIhsB,CAAG,KAAK8rB,GAAY,YAAYnlB,CAAG,GACpFslB,IAAe,CAACjsB,GAAKgsB,GAAQxZ,OAAYuZ,GAAc/rB,GAAKgsB,GAAQ,yBAAyB,GAAGxZ,IAASA,EAAO,KAAKxS,CAAG,IAAIgsB,EAAO,IAAIhsB,CAAG,IAC1IksB,KAAe,CAAClsB,GAAKgsB,GAAQjuB,MAAUiuB,EAAO,IAAIhsB,CAAG,IAAI8rB,GAAY,mDAAmD,IAAIE,aAAkB,UAAUA,EAAO,IAAIhsB,CAAG,IAAIgsB,EAAO,IAAIhsB,GAAKjC,CAAK,GAC/LouB,KAAe,CAACnsB,GAAKgsB,GAAQjuB,GAAOoU,OAAY4Z,GAAc/rB,GAAKgsB,GAAQ,wBAAwB,GAAG7Z,IAASA,EAAO,KAAKnS,GAAKjC,CAAK,IAAIiuB,EAAO,IAAIhsB,GAAKjC,CAAK,GAAGA,IACjKquB,IAAMC;AAGV,SAASC,GAAetsB,GAAKusB,GAAMC,GAAU;AAC3C,QAAMtlB,IAAOqlB,EAAK,SAAS;AAC3B,MAAIrlB,IAAO,EAAG,QAAOlH,MAAQ,SAASwsB,IAAWxsB;AACjD,WAASZ,IAAI,GAAGA,IAAI8H,GAAM9H,KAAK;AAC7B,QAAIY,KAAO;AACT,aAAOwsB;AAET,IAAAxsB,IAAMA,EAAIusB,EAAKntB,CAAC,CAAC;AAAA,EACnB;AACA,SAAIY,KAAO,QACJA,EAAIusB,EAAKrlB,CAAI,CAAC,MAAM,SADHslB,IACuBxsB,EAAIusB,EAAKrlB,CAAI,CAAC;AAC/D;AACA,SAASulB,GAAUjX,GAAG2D,GAAG;AACvB,MAAI3D,MAAM2D,EAAG,QAAO;AAIpB,MAHI3D,aAAa,QAAQ2D,aAAa,QAAQ3D,EAAE,QAAO,MAAO2D,EAAE,aAG5D3D,MAAM,OAAOA,CAAC,KAAK2D,MAAM,OAAOA,CAAC;AACnC,WAAO;AAET,QAAMtZ,IAAQ,OAAO,KAAK2V,CAAC;AAC3B,SAAI3V,EAAM,WAAW,OAAO,KAAKsZ,CAAC,EAAE,SAC3B,KAEFtZ,EAAM,MAAM,CAACW,MAAMisB,GAAUjX,EAAEhV,CAAC,GAAG2Y,EAAE3Y,CAAC,CAAC,CAAC;AACjD;AACA,SAASksB,GAAqB1sB,GAAKusB,GAAMC,GAAU;AACjD,SAAIxsB,KAAO,QAAQ,CAACusB,KAAQ,OAAOA,KAAS,WAAiBC,IACzDxsB,EAAIusB,CAAI,MAAM,SAAevsB,EAAIusB,CAAI,KACzCA,IAAOA,EAAK,QAAQ,cAAc,KAAK,GACvCA,IAAOA,EAAK,QAAQ,OAAO,EAAE,GACtBD,GAAetsB,GAAKusB,EAAK,MAAM,GAAG,GAAGC,CAAQ;AACtD;AACA,SAASG,GAAoBpnB,GAAMqnB,GAAUJ,GAAU;AACrD,MAAII,MAAa,GAAM,QAAOrnB,MAAS,SAASinB,IAAWjnB;AAC3D,MAAIqnB,KAAY,QAAQ,OAAOA,KAAa,UAAW,QAAOJ;AAC9D,MAAIjnB,MAAS,OAAOA,CAAI,GAAG;AACzB,QAAI,OAAOqnB,KAAa,WAAY,QAAOJ;AAC3C,UAAMK,IAASD,EAASrnB,GAAMinB,CAAQ;AACtC,WAAO,OAAOK,IAAW,MAAcL,IAAWK;AAAA,EACpD;AACA,MAAI,OAAOD,KAAa;AACtB,WAAOF,GAAqBnnB,GAAMqnB,GAAUJ,CAAQ;AACtD,MAAI,MAAM,QAAQI,CAAQ,EAAG,QAAON,GAAe/mB,GAAMqnB,GAAUJ,CAAQ;AAC3E,MAAI,OAAOI,KAAa,WAAY,QAAOJ;AAC3C,QAAMzuB,IAAQ6uB,EAASrnB,GAAMinB,CAAQ;AACrC,SAAO,OAAOzuB,IAAU,MAAcyuB,IAAWzuB;AACnD;AACA,SAAS+uB,GAAYC,GAAQ1U,IAAQ,GAAG;AACtC,SAAO,MAAM,KAAK,EAAE,QAAA0U,EAAM,GAAI,CAACvmB,GAAGwmB,MAAM3U,IAAQ2U,CAAC;AACnD;AAOA,SAASC,GAAcpqB,GAAKqqB,IAAO,MAAM;AACvC,MAAIrqB,KAAO,QAAQA,MAAQ;AACzB;AAEF,QAAMsqB,IAAM,OAAOtqB,CAAG;AACtB,SAAI,MAAMsqB,CAAG,IACJ,OAAOtqB,CAAG,IACP,SAASsqB,CAAG,IAGf,GAAGA,CAAG,GAAGD,CAAI,KAFpB;AAIJ;AACA,SAASpvB,GAASkC,GAAK;AACrB,SAAOA,MAAQ,QAAQ,OAAOA,KAAQ,YAAY,CAAC,MAAM,QAAQA,CAAG;AACtE;AACA,SAASmE,GAAcnE,GAAK;AAC1B,MAAIotB;AACJ,SAAOptB,MAAQ,QAAQ,OAAOA,KAAQ,cAAcotB,IAAQ,OAAO,eAAeptB,CAAG,OAAO,OAAO,aAAaotB,MAAU;AAC5H;AACA,SAASC,GAAWrtB,GAAK;AACvB,MAAIA,KAAO,SAASA,GAAK;AACvB,UAAMsD,IAAKtD,EAAI;AACf,WAA2BsD,GAAG,aAAc,KAAK,YACxCA,EAAG,qBAELA;AAAA,EACT;AACA,SAAOtD;AACT;AAoBK,MAACstB,KAAY,OAAO,OAAO;AAAA,EAC9B,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AACT,CAAC;AAID,SAAS5d,GAAI1P,GAAKM,GAAK;AACrB,SAAOA,EAAI,MAAM,CAAC0sB,MAAMhtB,EAAI,eAAegtB,CAAC,CAAC;AAC/C;AACA,SAASO,GAAKvtB,GAAKwtB,GAAO;AACxB,QAAMC,IAAQ,CAAA;AACd,aAAWntB,KAAOktB;AAChB,IAAI,OAAO,UAAU,eAAe,KAAKxtB,GAAKM,CAAG,MAC/CmtB,EAAMntB,CAAG,IAAIN,EAAIM,CAAG;AAGxB,SAAOmtB;AACT;AACA,SAASC,GAAa1tB,GAAKwtB,GAAOG,GAAS;AACzC,QAAMF,IAAwB,uBAAO,OAAO,IAAI,GAC1CG,IAAuB,uBAAO,OAAO,IAAI;AAC/C,aAAWttB,KAAON;AAChB,IAAIwtB,EAAM;AAAA,MACR,CAACjB,MAASA,aAAgB,SAASA,EAAK,KAAKjsB,CAAG,IAAIisB,MAASjsB;AAAA,IACnE,IACMmtB,EAAMntB,CAAG,IAAIN,EAAIM,CAAG,IAEpBstB,EAAKttB,CAAG,IAAIN,EAAIM,CAAG;AAGvB,SAAO,CAACmtB,GAAOG,CAAI;AACrB;AACA,SAASC,GAAK7tB,GAAK2tB,GAAS;AAC1B,QAAMG,IAAQ,EAAE,GAAG9tB,EAAG;AACtB,SAAA2tB,EAAQ,QAAQ,CAAC1tB,MAAS,OAAO6tB,EAAM7tB,CAAI,CAAC,GACrC6tB;AACT;AACA,MAAMC,KAAO,aACP7qB,KAAO,CAAC5C,MAAQytB,GAAK,KAAKztB,CAAG,GAC7B0tB,KAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,KAAwB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,SAASC,GAAqB,GAAG;AAC/B,SAAO,EAAE,eAAeD,GAAsB,SAAS,EAAE,GAAG;AAC9D;AACA,SAASE,GAAiBC,GAAO;AAC/B,QAAM,CAACC,GAAQxuB,CAAK,IAAI6tB,GAAaU,GAAO,CAACL,EAAI,CAAC,GAC5CO,IAAcT,GAAKQ,GAAQL,EAAc,GACzC,CAACO,GAAWC,CAAU,IAAId,GAAa7tB,GAAO;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG;AACD,gBAAO,OAAO0uB,GAAWF,CAAM,GAC/B,OAAO,OAAOG,GAAYF,CAAW,GAC9B,CAACC,GAAWC,CAAU;AAC/B;AAQA,SAASC,GAAYjoB,GAAG;AACtB,SAAOA,KAAK,OAAO,CAAA,IAAK,MAAM,QAAQA,CAAC,IAAIA,IAAI,CAACA,CAAC;AACnD;AAIA,SAASkoB,GAASpqB,GAAIqqB,GAAO;AAC3B,MAAIC,IAAY;AAChB,QAAM3f,IAAO,IAAI7M,MAAS;AACxB,iBAAawsB,CAAS,GACtBA,IAAY,WAAW,MAAMtqB,EAAG,GAAGlC,CAAI,GAAGiP,GAAMsd,CAAK,CAAC;AAAA,EACxD;AACA,SAAA1f,EAAK,QAAQ,MAAM;AACjB,iBAAa2f,CAAS;AAAA,EACxB,GACA3f,EAAK,YAAY3K,GACV2K;AACT;AACA,SAAS4f,GAASvqB,GAAIwqB,GAAO;AAC3B,MAAIC,IAAa;AACjB,SAAO,IAAI3sB,MAAS;AAClB,QAAI,CAAC2sB;AACH,aAAAA,IAAa,IACb,WAAW,MAAMA,IAAa,IAAOD,CAAK,GACnCxqB,EAAG,GAAGlC,CAAI;AAAA,EAErB;AACF;AACA,SAAS4sB,GAAMjxB,GAAOkxB,IAAM,GAAGC,IAAM,GAAG;AACtC,SAAO,KAAK,IAAID,GAAK,KAAK,IAAIC,GAAKnxB,CAAK,CAAC;AAC3C;AAKA,SAASoxB,GAAOtsB,GAAKkqB,GAAQqC,IAAO,KAAK;AACvC,SAAOvsB,IAAMusB,EAAK,OAAO,KAAK,IAAI,GAAGrC,IAASlqB,EAAI,MAAM,CAAC;AAC3D;AAIA,SAASwsB,GAAMxsB,GAAKysB,IAAO,GAAG;AAC5B,QAAMC,IAAU,CAAA;AAChB,MAAI7vB,IAAQ;AACZ,SAAOA,IAAQmD,EAAI;AACjB,IAAA0sB,EAAQ,KAAK1sB,EAAI,OAAOnD,GAAO4vB,CAAI,CAAC,GACpC5vB,KAAS4vB;AAEX,SAAOC;AACT;AAmBA,SAASC,GAAU1vB,IAAS,CAAA,GAAI2K,IAAS,CAAA,GAAIglB,GAAS;AACpD,QAAMC,IAAM,CAAA;AACZ,aAAWpvB,KAAOR;AAChB,IAAA4vB,EAAIpvB,CAAG,IAAIR,EAAOQ,CAAG;AAEvB,aAAWA,KAAOmK,GAAQ;AACxB,UAAMklB,IAAiB7vB,EAAOQ,CAAG,GAC3BsvB,IAAiBnlB,EAAOnK,CAAG;AACjC,QAAI6D,GAAcwrB,CAAc,KAAKxrB,GAAcyrB,CAAc,GAAG;AAClE,MAAAF,EAAIpvB,CAAG,IAAIkvB,GAAUG,GAAgBC,CAAuB;AAC5D;AAAA,IACF;AAKA,IAAAF,EAAIpvB,CAAG,IAAIsvB;AAAA,EACb;AACA,SAAOF;AACT;AACA,SAASG,GAAiBC,GAAO;AAC/B,SAAOA,EAAM,IAAI,CAAC9Q,MACZA,EAAK,SAAS0E,KACTmM,GAAiB7Q,EAAK,QAAQ,IAE9BA,CAEV,EAAE,KAAI;AACT;AACA,SAAS+Q,GAAYltB,IAAM,IAAI;AAC7B,MAAIktB,GAAY,MAAM,IAAIltB,CAAG,EAAG,QAAOktB,GAAY,MAAM,IAAIltB,CAAG;AAChE,QAAMmtB,IAAQntB,EAAI,QAAQ,YAAY,GAAG,EAAE,QAAQ,cAAc,KAAK,EAAE,YAAW;AACnFktB,SAAAA,GAAY,MAAM,IAAIltB,GAAKmtB,CAAK,GACzBA;AACT;AACAD,GAAY,QAAwB,oBAAI,IAAG;AAC3C,SAASE,GAAwB3vB,GAAKyU,GAAO;AAC3C,MAAI,CAACA,KAAS,OAAOA,KAAU,SAAU,QAAO,CAAA;AAChD,MAAI,MAAM,QAAQA,CAAK;AACrB,WAAOA,EAAM,IAAI,CAAC2J,MAAUuR,GAAwB3vB,GAAKoe,CAAK,CAAC,EAAE,KAAK,CAAC;AAClE,MAAI3J,EAAM;AACf,WAAOkb,GAAwB3vB,GAAKyU,EAAM,SAAS;AAC9C,MAAI,MAAM,QAAQA,EAAM,QAAQ;AACrC,WAAOA,EAAM,SAAS,IAAI,CAAC2J,MAAUuR,GAAwB3vB,GAAKoe,CAAK,CAAC,EAAE,KAAK,CAAC;AAC3E,MAAI3J,EAAM,WAAW;AAC1B,QAAI,OAAO,sBAAsBA,EAAM,UAAU,QAAQ,EAAE;AAAA,MACzDzU;AAAA,IACN;AACM,aAAO,CAACyU,EAAM,SAAS;AAClB,QAAIA,EAAM,UAAU;AACzB,aAAOkb,GAAwB3vB,GAAKyU,EAAM,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,EAEvE;AACA,SAAO,CAAA;AACT;AACA,MAAMmb,GAAe;AAAA,EACnB,YAAYZ,GAAM;AAChB,IAAApD,GAAa,MAAME,IAAM,EAAE,GAC3BF,GAAa,MAAMG,IAAU,CAAC,GAC9B,KAAK,OAAOiD;AAAA,EACd;AAAA,EACA,IAAI,SAAS;AACX,WAAOrD,EAAa,MAAMG,EAAI,EAAE,WAAW,KAAK;AAAA,EAClD;AAAA,EACA,KAAKrpB,GAAK;AACR,IAAAkpB,EAAa,MAAMG,EAAI,EAAEH,EAAa,MAAMI,EAAQ,CAAC,IAAItpB,GACzDopB,GAAa,MAAME,KAAWJ,EAAa,MAAMI,EAAQ,IAAI,KAAK,KAAK,IAAI;AAAA,EAC7E;AAAA,EACA,SAAS;AACP,WAAOJ,EAAa,MAAMG,EAAI,EAAE,MAAMH,EAAa,MAAMI,EAAQ,CAAC,EAAE,OAAOJ,EAAa,MAAMG,EAAI,EAAE,MAAM,GAAGH,EAAa,MAAMI,EAAQ,CAAC,CAAC;AAAA,EAC5I;AAAA,EACA,QAAQ;AACN,IAAAJ,EAAa,MAAMG,EAAI,EAAE,SAAS,GAClCD,GAAa,MAAME,IAAU,CAAC;AAAA,EAChC;AACF;AACAD,KAAO,oBAAI,QAAO;AAClBC,KAAW,oBAAI,QAAO;AAOtB,SAAS8D,GAAiB3d,GAAQ;AAChC,QAAM4d,IAAOniB,GAAS,EAAE;AACxB,EAAA+Y;AAAA,IACE,MAAM;AACJ,YAAMqJ,IAAO7d,EAAM;AACnB,iBAAWlS,KAAO+vB;AAChB,QAAAD,EAAK9vB,CAAG,IAAI+vB,EAAK/vB,CAAG;AAAA,IAExB;AAAA,IACA,EAAE,OAAO,OAAM;AAAA,EACnB;AACE,QAAMN,IAAM,CAAA;AACZ,aAAWM,KAAO8vB;AAChB,IAAApwB,EAAIM,CAAG,IAAI0R,GAAM,MAAMoe,EAAK9vB,CAAG,CAAC;AAElC,SAAON;AACT;AACA,SAASswB,GAASjtB,GAAKN,GAAK;AAC1B,SAAOM,EAAI,SAASN,CAAG;AACzB;AACA,SAASwtB,GAAUC,GAAU;AAC3B,SAAOA,EAAS,CAAC,EAAE,YAAW,IAAKA,EAAS,MAAM,CAAC;AACrD;AACK,MAACC,KAAY,MAAM,CAAC,UAAU,KAAK;AACxC,SAASC,GAAS7wB,GAAO2C,GAAM;AAC7B,SAAAA,IAAO,OAAOoC,GAAWpC,CAAI,GACtB,CAAC,EAAE3C,EAAM2C,CAAI,KAAK3C,EAAM,GAAG2C,CAAI,MAAM,KAAK3C,EAAM,GAAG2C,CAAI,SAAS,KAAK3C,EAAM,GAAG2C,CAAI,aAAa,KAAK3C,EAAM,GAAG2C,CAAI,aAAa;AACvI;AACA,SAASmuB,GAAUC,MAAYxuB,GAAM;AACnC,MAAI,MAAM,QAAQwuB,CAAO;AACvB,eAAWpG,KAAKoG;AACd,MAAApG,EAAE,GAAGpoB,CAAI;AAAA,MAEN,CAAI,OAAOwuB,KAAY,cAC5BA,EAAQ,GAAGxuB,CAAI;AAEnB;AACA,SAASyuB,GAAkBvtB,GAAIwtB,IAAmB,IAAM;AACtD,QAAMC,IAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,EAAI;AAAA,IACA,CAACrd,MAAM,GAAGA,CAAC,GAAGod,IAAmB,0BAA0B,EAAE;AAAA,EACjE,EAAI,KAAK,IAAI;AACX,SAAO,CAAC,GAAGxtB,EAAG,iBAAiBytB,CAAO,CAAC;AACzC;AACA,SAASC,GAAeC,GAAUC,GAAUC,GAAW;AACrD,MAAIC,GACAC,IAAMJ,EAAS,QAAQ,SAAS,aAAa;AACjD,QAAMK,IAAMJ,MAAa,SAAS,IAAI;AACtC;AACE,IAAAG,KAAOC,GACPF,IAAMH,EAASI,CAAG;AAAA,UACV,CAACD,KAAOA,EAAI,gBAAgB,QAAQ,EAAgCD,IAAUC,CAAG,KAAM,QAAUC,IAAMJ,EAAS,UAAUI,KAAO;AAC3I,SAAOD;AACT;AACA,SAASG,GAAWjuB,GAAI4tB,GAAU;AAChC,MAAIzqB,GAAIgP,GAAI+b,GAAIC;AAChB,QAAMC,IAAYb,GAAkBvtB,CAAE;AACtC,MAAI4tB,KAAY;AACd,KAAI5tB,MAAO,SAAS,iBAAiB,CAACA,EAAG,SAAS,SAAS,aAAa,QACrEmD,IAAKirB,EAAU,CAAC,MAAM,QAAgBjrB,EAAG,MAAK;AAAA,WAExCyqB,MAAa;AACtB,KAACzb,IAAKic,EAAU,CAAC,MAAM,QAAgBjc,EAAG,MAAK;AAAA,WACtCyb,MAAa;AACtB,KAACM,IAAKE,EAAU,GAAG,EAAE,MAAM,QAAgBF,EAAG,MAAK;AAAA,WAC1C,OAAON,KAAa;AAC7B,KAACO,IAAKC,EAAUR,CAAQ,MAAM,QAAgBO,EAAG,MAAK;AAAA,OACjD;AACL,UAAML,IAAMJ,GAAeU,GAAWR,CAAQ;AAC9C,IAAIE,IAAKA,EAAI,MAAK,IACbG,GAAWjuB,GAAI4tB,MAAa,SAAS,UAAU,MAAM;AAAA,EAC5D;AACF;AACA,SAASS,GAAQ5uB,GAAK;AACpB,SAAOA,KAAQ,QAA0B,OAAOA,KAAQ,YAAYA,EAAI,KAAI,MAAO;AACrF;AACA,SAASR,KAAO;AAChB;AACA,SAASqvB,GAAgBtuB,GAAIuuB,GAAU;AAErC,MAAI,EADqBC,MAAc,OAAO,MAAQ,OAAe,OAAO,IAAI,WAAa,OAAe,IAAI,SAAS,YAAYD,CAAQ,GAAG,GACzH,QAAO;AAC9B,MAAI;AACF,WAAO,CAAC,CAACvuB,KAAMA,EAAG,QAAQuuB,CAAQ;AAAA,EACpC,QAAc;AACZ,WAAO;AAAA,EACT;AACF;AACA,SAASE,GAAiBC,GAAQ;AAChC,SAAOA,EAAO,KAAK,CAACtT,MACbmJ,GAAQnJ,CAAK,IACdA,EAAM,SAASqC,IAAgB,KAC5BrC,EAAM,SAASgF,MAAYqO,GAAiBrT,EAAM,QAAQ,IAFrC,EAG7B,IAAIsT,IAAS;AAChB;AAIA,SAASC,GAAM/vB,GAASgR,GAAI;AAC1B,MAAI,CAAC4e,MAAc5vB,MAAY;AAC7B,WAAAgR,EAAE,GACK,MAAM;AAAA,IACb;AAEF,QAAM0b,IAAY,OAAO,WAAW1b,GAAIhR,CAAO;AAC/C,SAAO,MAAM,OAAO,aAAa0sB,CAAS;AAC5C;AACA,SAASsD,GAAqBlX,GAAOmX,GAAW;AAC9C,QAAMC,IAASpX,EAAM,SACfqX,IAASrX,EAAM,SACfsX,IAAUH,EAAU,sBAAqB,GACzCI,IAAUD,EAAQ,MAClBE,IAASF,EAAQ,KACjBG,IAAWH,EAAQ,OACnBI,IAAYJ,EAAQ;AAC1B,SAAOF,KAAUG,KAAWH,KAAUK,KAAYJ,KAAUG,KAAUH,KAAUK;AAClF;AACA,SAASC,KAAc;AACrB,QAAMrvB,IAAK2N,GAAU,GACf3M,IAAK,CAACmG,MAAW;AACrB,IAAAnH,EAAG,QAAQmH;AAAA,EACb;AACA,gBAAO,eAAenG,GAAI,SAAS;AAAA,IACjC,YAAY;AAAA,IACZ,KAAK,MAAMhB,EAAG;AAAA,IACd,KAAK,CAACP,MAAQO,EAAG,QAAQP;AAAA,EAC7B,CAAG,GACD,OAAO,eAAeuB,GAAI,MAAM;AAAA,IAC9B,YAAY;AAAA,IACZ,KAAK,MAAM+oB,GAAW/pB,EAAG,KAAK;AAAA,EAClC,CAAG,GACMgB;AACT;AACA,SAASsuB,GAAe,GAAG;AACzB,QAAMC,IAAkB,EAAE,IAAI,WAAW,GACnCC,IAAa,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE;AAClD,SAAOD,KAAmBC;AAC5B;AACA,SAASC,GAAYh1B,GAAO;AAC1B,SAAO,OAAOA,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU,aAAa,OAAOA,KAAU;AAClH;AACA,SAASi1B,GAAeC,GAAM;AAC5B,SAAO,kBAAkB,SAASA,CAAI,IAAI,KAAKA,CAAI,KAAKA;AAC1D;AAsBA,SAASC,GAAcrzB,GAAO;AAC5B,QAAM6vB,IAAM,CAAA;AACZ,aAAWzvB,KAAQJ;AACjB,IAAA6vB,EAAIjrB,GAASxE,CAAI,CAAC,IAAIJ,EAAMI,CAAI;AAElC,SAAOyvB;AACT;AACA,SAASyD,GAAiBtzB,GAAO;AAC/B,QAAMuzB,IAAoB,CAAC,WAAW,UAAU;AAChD,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQvzB,CAAK,EAAE;AAAA,MACpB,CAAC,CAACS,GAAKkG,CAAC,MAAM4sB,EAAkB,SAAS9yB,CAAG,IAAI,CAAC,CAACkG,IAAIA,MAAM;AAAA,IAClE;AAAA,EACA;AACA;ACrlBA,SAAS4Z,GAAmB5d,GAAM6wB,GAAS;AACzC,QAAMC,IAAKC,GAAoB;AAC/B,MAAI,CAACD;AACH,UAAM,IAAI;AAAA,MACR,aAAa9wB,CAAI;AAAA,IACvB;AAEE,SAAO8wB;AACT;AACA,SAASE,GAAuBhxB,IAAO,eAAe;AACpD,QAAM8wB,IAAKlT,GAAmB5d,CAAI,EAAE;AACpC,SAAOutB,GAAmCuD,GAAG,aAAqCA,GAAG,IAAK;AAC5F;AC0BO,MAAMG,KAAiC,CAC5CzzB,MAEO,OAAO;AAAA,EACZ,OAAO,QAAQA,CAAG,EAAE,OAAO,CAAC,CAAC0E,GAAG3G,CAAK,MAAMA,MAAU,MAAS;AAAA,GAyErDgD,KAA4B,CAIvCD,MAC8B;AAC9B,QAAMgF,IAA0C,CAAA,GAC1C4tB,IAAY5yB,EAAA;AAElB,gBAAO,QAAQ4yB,CAAS,EAAE,QAAQ,CAAC,CAACpzB,GAAKvC,CAAK,MAAM;AAClD,IACE,OAAOA,KAAU,YACjB,CAAC,MAAM,QAAQA,CAAK,KACpBA,MAAU,QACV,aAAaA,MAIX,OAAOA,EAAM,QAAS,cAAc,CAAC,UAAU,OAAO,EAAE,SAASA,EAAM,KAAK,IAAI,KAE3D,OAAOA,EAAM,WAAY,aAC9C+H,EAAIxF,CAAsC,IAAIvC,EAAM,QAAA,IAGpD+H,EAAIxF,CAAsC,IAAKvC,EAAc;AAAA,EAInE,CAAC,GAGM01B,GAA+B3tB,CAAG;AAC3C,GAqBa6tB,KAAW,CAAC51B,GAAwByuB,IAAmB,MAAc;AAChF,QAAMW,IAAM,OAAOpvB,KAAU,WAAWA,IAAQ,OAAO,SAASA,GAAiB,EAAE;AACnF,SAAO,OAAO,MAAMovB,CAAG,IAAI,KAAK,IAAI,KAAK,MAAMX,CAAQ,CAAC,IAAI,KAAK,IAAI,KAAK,MAAMW,CAAG,CAAC;AACtF,GAyBayG,KAAiB,CAC5Bl1B,GACA4d,GACAuX,IAA2B,GAC3BC,IAAe,QACZ;AACH,EAAKp1B,EAAO,MAAM,aAAa,MAC7BA,IAAS,MAAMA;AAGjB,QAAMq1B,IADUC,GAAO,GAAGt1B,CAAM,IAAI4d,CAAS,KAAI,oBAAI,KAAA,GAAO,SAAS,IAAI,KAAK,OAAA,CAAQ,EAAE,EAC7D,QAAQ,iBAAiB,EAAE,EAAE,MAAM,GAAGuX,CAAgB;AACjF,SAAO,CAACn1B,GAAQq1B,CAAU,EAAE,OAAO,OAAO,EAAE,KAAKD,CAAI;AACvD,GAEaG,KAAyB,CAACC,MAAoD;AACzF,MAAIA,EAAM,WAAW;AACnB,WAAO,EAAE,MAAM,IAAI,MAAM,GAAA;AAC3B,MAAWA,EAAM,WAAW;AAC1B,WAAO,EAAE,MAAMA,EAAM,CAAC,GAAG,MAAM,GAAA;AACjC,MAAWA,EAAM,WAAW;AAC1B,WAAO,EAAE,MAAMA,EAAM,CAAC,GAAG,MAAMA,EAAM,CAAC,EAAA;AACjC;AACL,UAAMnrB,IAAOmrB,EAAM,MAAM,GAAG,EAAE,EAAE,KAAK,IAAI,GACnCv1B,IAAOu1B,EAAMA,EAAM,SAAS,CAAC;AACnC,WAAO,EAAE,MAAAnrB,GAAM,MAAApK,EAAA;AAAA,EACjB;AACF,GA+Baw1B,KAAe,CAAUp2B,MAAkC;AACtE,MAAmB,OAAOA,KAAtB,cAGEA,EAAM,KAAK,WAAW,IAAI;AAC5B,WAAOA;AAGX,MAAI;AACF,UAAMq2B,IAAW3oB,GAAM8F,GAAQxT,CAAK,CAAC;AACrC,QAAID,GAASs2B,CAAQ,GAAG;AACtB,YAAM3d,IAAO,OAAO,KAAK2d,CAAQ;AACjC,aAAO,OAAO,OAAO,CAAA,GAAI,GAAG3d,EAAK,IAAI,CAACuW,OAAO,EAAE,CAACA,CAAC,GAAGmH,GAAaC,EAASpH,CAAC,CAAC,EAAA,EAAI,CAAC;AAAA,IACnF,WAAW,MAAM,QAAQoH,CAAQ;AAC/B,aAAO,MAAM,KAAKA,CAAQ,EAAE,IAAI,CAAC7uB,MAAS4uB,GAAa5uB,CAAI,CAAC;AAE9D,WAAO6uB;AAAA,EACT,QAAQ;AACN,WAAOr2B;AAAA,EACT;AACF,GAEas2B,KAAa,CAACt2B,MAA0C;AACnE,QAAMu2B,IAAWH,GAAap2B,CAAK;AACnC,SAAOu2B,KAAa,QAAkCA,MAAa;AACrE,GAOaC,KAAW,CAAC10B,GAAmB2C,IAAOgxB,SAA6B;AAC9E,QAAMgB,IAAYzjB,GAAIlR,EAAM,OAAO,GAC7B40B,IAAeziB,GAAM,OAClB;AAAA,IACL,CAAC,GAAGxP,CAAI,WAAW,GAAGgyB,EAAU;AAAA,EAAA,EAEnC;AAED,WAASE,IAAQ;AACf,IAAAF,EAAU,QAAQ;AAAA,EACpB;AAEA,WAASG,IAAO;AACd,IAAAH,EAAU,QAAQ;AAAA,EACpB;AAEA,SAAO,EAAE,cAAAC,GAAc,WAAAD,GAAW,OAAAE,GAAO,MAAAC,EAAA;AAC3C,GAEaC,KAAU,CAIrBlL,GACAvJ,MAEOA,EAAMuJ,CAAI,GAGbmL,KAAuB,CAAC9f,MAAyB;AAErD,MAAI,OAAOA,EAAM,YAAa;AAC5B,WAAOA,EAAM;AAGf,MAAI,MAAM,QAAQA,EAAM,QAAQ;AAC9B,WAAOA,EAAM,SACV,IAAI,CAAC2J,MAEA,OAAOA,KAAU,WACZA,IAGLA,KAAS,OAAOA,KAAU,WACrBmW,GAAqBnW,CAAc,IAErC,EACR,EACA,KAAK,EAAE;AAGZ,MAAI3J,EAAM,YAAY,OAAOA,EAAM,YAAa,UAAU;AAExD,UAAMoL,IAAQpL,EAAM;AAEpB,QAAI,OAAOoL,EAAM,WAAY,YAAY;AACvC,YAAM2U,IAAc3U,EAAM,QAAA;AAC1B,UAAI,MAAM,QAAQ2U,CAAW;AAC3B,eAAOA,EACJ,IAAI,CAACpW,MACA,OAAOA,KAAU,WACZA,IAELA,KAAS,OAAOA,KAAU,WACrBmW,GAAqBnW,CAAK,IAE5B,EACR,EACA,KAAK,EAAE;AAAA,IAEd;AAAA,EACF;AAEA,SAAO;AACT,GAuCaqW,KAA2B,CAACC,MACnC,OAAOA,KAAU,WACZA,IAELA,KAAS,OAAOA,KAAU,WACrBH,GAAqBG,CAAK,IAE5B,IAyCIC,KAAe,CAC1BC,GACAC,MACGC,MAC4C;AAC/C,QAAMtvB,IAAkD,CAAA,GAClDuvB,IAAc,CAClBpf,MAKG;AACH,IAAiB,OAAOA,KAApB,YAEoB,OAAOA,KAApB,YAA6B,CAAC,MAAM,QAAQA,CAAK,KAAcA,MAAT,OAD/DnQ,EAAI,KAAKmQ,CAAK,IAGL,MAAM,QAAQA,CAAK,KAC5BA,EAAM,QAAQ,CAACtN,MAAM0sB,EAAY1sB,CAAC,CAAC;AAAA,EAEvC;AACA,SAAA0sB,EAAYH,CAAQ,GACpBG,EAAYF,CAAU,GACtBC,EAAK,QAAQ,CAACzsB,MAAM0sB,EAAY1sB,CAAC,CAAC,GAC3B7C;AACT;AAEO,SAASiqB,GAAYltB,IAAM,IAAI;AACpC,MAAIktB,GAAY,MAAM,IAAIltB,CAAG,EAAG,QAAOktB,GAAY,MAAM,IAAIltB,CAAG;AAChE,QAAMmtB,IAAQntB,EACX,QAAQ,YAAY,GAAG,EACvB,QAAQ,cAAc,KAAK,EAC3B,YAAA;AACH,SAAAktB,GAAY,MAAM,IAAIltB,GAAKmtB,CAAK,GACzBA;AACT;AACAD,GAAY,4BAAY,IAAA;AAMjB,MAAMuF,KAAkB,CAO7Bz1B,GACAI,GACAgS,GACAsjB,IAA8C,CAAC/uB,MAAWA,GAC1DgvB,IAA8C,CAAChvB,MAAWA,MACvD;AACH,QAAM8sB,IAAKlT,GAAmB,iBAAiB,GACzCqV,IAAW1kB,GAAIlR,EAAMI,CAAI,MAAM,SAAYJ,EAAMI,CAAI,IAAIgS,CAAY,GACrEyjB,IAAY3F,GAAY9vB,CAAI,GAE5B01B,IADaD,MAAcz1B,IAE7BsqB,GAAS,OACF1qB,EAAMI,CAAI,GACR,CAAC,GACLqzB,EAAG,MAAM,OAAO,eAAerzB,CAAI,KAAKqzB,EAAG,MAAM,OAAO,eAAeoC,CAAS,OAChFpC,EAAG,MAAM,OAAO,eAAe,YAAYrzB,CAAI,EAAE,KAChDqzB,EAAG,MAAM,OAAO,eAAe,YAAYoC,CAAS,EAAE,IAE3D,IACDnL,GAAS,OACF1qB,EAAMI,CAAI,GACR,CAAC,EACNqzB,EAAG,MAAM,OAAO,eAAerzB,CAAI,KAAKqzB,EAAG,MAAM,OAAO,eAAe,YAAYrzB,CAAI,EAAE,GAE5F,GACC21B,IAAQrL,GAAS;AAAA,IACrB,MAAW;AACT,YAAMsL,IAAgBh2B,EAAMI,CAAI;AAChC,aAAOs1B,EAAYI,EAAa,QAAQE,IAAgBJ,EAAS,KAAK;AAAA,IACxE;AAAA,IACA,IAAIK,GAAe;AACjB,YAAMjrB,IAAW2qB,EAAaM,CAAa,GACrC/3B,IAAQ0N,GAAMkqB,EAAa,QAAQ91B,EAAMI,CAAI,IAAIw1B,EAAS,KAAK;AACrE,MAAI13B,MAAU8M,KAAY0qB,EAAYx3B,CAAK,MAAM+3B,MAGjDL,EAAS,QAAQ5qB,GACjByoB,GAAI,KAAK,UAAUrzB,CAAI,IAAI4K,CAAQ;AAAA,IACrC;AAAA,EAAA,CACD;AAED,gBAAO,eAAe+qB,GAAO,iBAAiB;AAAA,IAC5C,KAAK,MAAOD,EAAa,QAAQ91B,EAAMI,CAAI,IAAIw1B,EAAS;AAAA,EAAA,CACzD,GAEMG;AACT,GAEaG,KAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGaC,KAAsC,CACjDtrB,GACAurB,MACyB;AAGzB,UAAQvrB,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,cAAQurB,GAAA;AAAA,QACN,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MAAA;AAAA,IAGb,KAAK;AACH,cAAQA,GAAA;AAAA,QACN,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MAAA;AAAA,IAGb,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb,GA4DaC,KAAqB,CAUhClb,GACAmb,GACAC,GACAv2B,GACAuuB,GACAvvB,IAAwC,OACrC;AACH,EACe,OAAOA,EAAQ,cAA5B,YACa,OAAOA,EAAQ,cAA5B,YACAA,EAAQ,aAAa,KACrBA,EAAQ,aAAa,KAErB+sB,GAAK,6DAA6D;AAEpE,QAAM,EAAE,OAAAyK,GAAO,OAAArG,MAAU3vB,GAAiC2a,CAAK,GAIzDsb,IAAS,UAAUl0B,MAAY;AAEnC,QACiB,OAAOvC,EAAMw2B,CAAK,KAAjC,cACe,OAAOx2B,EAAMmwB,CAAK,KAAjC,cACe,OAAO5B,EAAMiI,CAAK,KAAjC,cACe,OAAOjI,EAAM4B,CAAK,KAAjC,YACA;AACA,MAAAmG,EAAKnb,GAAO,GAAG5Y,CAAI;AACnB;AAAA,IACF;AAEA,QAAiB,OAAOg0B,KAApB,YAAiC,EAAEA,KAAav2B,GAAQ;AAC5D,UAAM02B,IAAU12B,EAAMu2B,CAAS;AAC/B,QAAI,MAAM,QAAQG,CAAO,KAAKA,EAAQ,SAAS;AAC7C;AAGF,WADiB13B,EAAQ,aAAa,MAAM;AAAA,IAAC,IAC9B,GAAGuD,CAAI;AAAA,EACxB;AACA,MAAIo0B,IAAWF;AAOf,UANiB,OAAOz3B,EAAQ,cAA5B,YAA0CA,EAAQ,aAAa,MACjE23B,IAAW9H,GAAS8H,GAAU33B,EAAQ,UAAU,IAEjC,OAAOA,EAAQ,cAA5B,YAA0CA,EAAQ,aAAa,MACjE23B,IAAW3H,GAAS2H,GAAU33B,EAAQ,UAAU,IAE1C,IAAA;AAAA,IACN,KAAqB,OAAOA,EAAQ,YAA/B;AACH,MAAA23B,IAAW,UAAUp0B,OACnB,MAAM8V,GAAA,GACC,MAAMoe,EAAO,GAAGl0B,CAAI;AAE7B;AAAA,IAEF,KAAKvD,EAAQ;AACX,MAAA23B,IAAW,UAAUp0B,MACZ,MAAM,IAAI,QAAc,CAACq0B,MAAS;AACvC,uBAAe,MAAMH,EAAO,GAAGl0B,CAAI,EAAE,KAAKq0B,CAAI,CAAC;AAAA,MACjD,CAAC;AAEH;AAAA,EAAA;AAEJ,SAAOD;AACT;","x_google_ignoreList":[1,2,3,5,6,7,8]}
|
|
1
|
+
{"version":3,"file":"utils-D3ZGaTyv.mjs","sources":["../src/private/common/guards.ts","../node_modules/.pnpm/case-anything@3.1.2/node_modules/case-anything/dist/utils.js","../node_modules/.pnpm/case-anything@3.1.2/node_modules/case-anything/dist/core.js","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/propsFactory.mjs","../src/private/common/factories.ts","../node_modules/.pnpm/vite-plugin-node-polyfills@0.24.0_rollup@4.52.5_vite@7.2.2_@types+node@22.19.0_jiti@2.6_7c9c32b39fd1084047db114c6237ab2d/node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/vue.runtime.esm-bundler-BRffRTPw.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/helpers.mjs","../node_modules/.pnpm/@nhtio+vuetifiable@1.20250907.1/node_modules/@nhtio/vuetifiable/util/getCurrentInstance.mjs","../src/private/common/utils.ts"],"sourcesContent":["/**\n * Type guard to check if a value is a plain object (not null, not array)\n * @param value - The value to check\n * @returns True if the value is a plain object, false otherwise\n */\nexport const isObject = (value: unknown): value is { [key: string]: unknown } => {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n","// Latin-1 Supplement\n// upper case ranges\n// [À-ÖØ-ß]\n// lower case ranges\n// [à-öø-ÿ]\nexport const magicSplit = /^[a-zà-öø-ÿа-я]+|[A-ZÀ-ÖØ-ßА-Я][a-zà-öø-ÿа-я]+|[a-zà-öø-ÿа-я]+|[0-9]+|[A-ZÀ-ÖØ-ßА-Я]+(?![a-zà-öø-ÿа-я])/g;\nexport const spaceSplit = /\\S+/g;\n/**\n * A string.matchAll function that will return an array of \"string parts\" and the indexes at which it split each part\n */\nexport function getPartsAndIndexes(string, splitRegex) {\n const result = { parts: [], prefixes: [] };\n const matches = string.matchAll(splitRegex);\n let lastWordEndIndex = 0;\n for (const match of matches) {\n if (typeof match.index !== 'number')\n continue;\n const word = match[0];\n result.parts.push(word);\n const prefix = string.slice(lastWordEndIndex, match.index).trim();\n result.prefixes.push(prefix);\n lastWordEndIndex = match.index + word.length;\n }\n const tail = string.slice(lastWordEndIndex).trim();\n if (tail) {\n result.parts.push('');\n result.prefixes.push(tail);\n }\n return result;\n}\n/**\n * A function that splits a string on words and returns an array of words.\n * - It can prefix each word with a given character\n * - It can strip or keep special characters, this affects the logic for adding a prefix as well\n */\nexport function splitAndPrefix(string, options) {\n const { keepSpecialCharacters = false, keep, prefix = '' } = options || {};\n const normalString = string.trim().normalize('NFC');\n const hasSpaces = normalString.includes(' ');\n const split = hasSpaces ? spaceSplit : magicSplit;\n const partsAndIndexes = getPartsAndIndexes(normalString, split);\n return partsAndIndexes.parts\n .map((_part, i) => {\n let foundPrefix = partsAndIndexes.prefixes[i] || '';\n let part = _part;\n if (keepSpecialCharacters === false) {\n if (keep) {\n part = part\n .normalize('NFD')\n .replace(new RegExp(`[^a-zA-ZØßø0-9${keep.join('')}]`, 'g'), '');\n }\n if (!keep) {\n part = part.normalize('NFD').replace(/[^a-zA-ZØßø0-9]/g, '');\n foundPrefix = '';\n }\n }\n if (keep && foundPrefix) {\n foundPrefix = foundPrefix.replace(new RegExp(`[^${keep.join('')}]`, 'g'), '');\n }\n // the first word doesn't need a prefix, so only return the found prefix\n if (i === 0) {\n // console.log(`foundPrefix → `, foundPrefix)\n return foundPrefix + part;\n }\n if (!foundPrefix && !part)\n return '';\n if (!hasSpaces) {\n // return the found prefix OR fall back to a given prefix\n return (foundPrefix || prefix) + part;\n }\n // space based sentence was split on spaces, so only return found prefixes\n if (!foundPrefix && prefix.match(/\\s/)) {\n // in this case we have no more found prefix, it was trimmed, but we're looking to add a space\n // so let's return that space\n return ' ' + part;\n }\n return (foundPrefix || prefix) + part;\n })\n .filter(Boolean);\n}\n/**\n * Capitalises a single word\n * @returns the word with the first character in uppercase and the rest in lowercase\n */\nexport function capitaliseWord(string) {\n const match = string.matchAll(magicSplit).next().value;\n const firstLetterIndex = match ? match.index : 0;\n return (string.slice(0, firstLetterIndex + 1).toUpperCase() +\n string.slice(firstLetterIndex + 1).toLowerCase());\n}\n","import { capitaliseWord, magicSplit, splitAndPrefix } from './utils.js';\n/**\n * # 🐪 camelCase\n * converts a string to camelCase\n * - first lowercase then all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * camelCase('$catDog') === 'catDog'\n * @example\n * camelCase('$catDog', { keepSpecialCharacters: true }) === '$catDog'\n */\nexport function camelCase(string, options) {\n return splitAndPrefix(string, options).reduce((result, word, index) => {\n return index === 0 || !(word[0] || '').match(magicSplit)\n ? result + word.toLowerCase()\n : result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🐫 PascalCase\n * converts a string to PascalCase (also called UpperCamelCase)\n * - all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * pascalCase('$catDog') === 'CatDog'\n * @example\n * pascalCase('$catDog', { keepSpecialCharacters: true }) === '$CatDog'\n */\nexport function pascalCase(string, options) {\n return splitAndPrefix(string, options).reduce((result, word) => {\n return result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🐫 UpperCamelCase\n * converts a string to UpperCamelCase (also called PascalCase)\n * - all capitalised\n * - *strips away* special characters by default\n *\n * @example\n * upperCamelCase('$catDog') === 'CatDog'\n * @example\n * upperCamelCase('$catDog', { keepSpecialCharacters: true }) === '$CatDog'\n */\nexport const upperCamelCase = pascalCase;\n/**\n * # 🥙 kebab-case\n * converts a string to kebab-case\n * - hyphenated lowercase\n * - *strips away* special characters by default\n *\n * @example\n * kebabCase('$catDog') === 'cat-dog'\n * @example\n * kebabCase('$catDog', { keepSpecialCharacters: true }) === '$cat-dog'\n */\nexport function kebabCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 🐍 snake_case\n * converts a string to snake_case\n * - underscored lowercase\n * - *strips away* special characters by default\n *\n * @example\n * snakeCase('$catDog') === 'cat_dog'\n * @example\n * snakeCase('$catDog', { keepSpecialCharacters: true }) === '$cat_dog'\n */\nexport function snakeCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 📣 CONSTANT_CASE\n * converts a string to CONSTANT_CASE\n * - underscored uppercase\n * - *strips away* special characters by default\n *\n * @example\n * constantCase('$catDog') === 'CAT_DOG'\n * @example\n * constantCase('$catDog', { keepSpecialCharacters: true }) === '$CAT_DOG'\n */\nexport function constantCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .join('')\n .toUpperCase();\n}\n/**\n * # 🚂 Train-Case\n * converts strings to Train-Case\n * - hyphenated & capitalised\n * - *strips away* special characters by default\n *\n * @example\n * trainCase('$catDog') === 'Cat-Dog'\n * @example\n * trainCase('$catDog', { keepSpecialCharacters: true }) === '$Cat-Dog'\n */\nexport function trainCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .map((word) => capitaliseWord(word))\n .join('');\n}\n/**\n * # 🕊 Ada_Case\n * converts a string to Ada_Case\n * - underscored & capitalised\n * - *strips away* special characters by default\n *\n * @example\n * adaCase('$catDog') === 'Cat_Dog'\n * @example\n * adaCase('$catDog', { keepSpecialCharacters: true }) === '$Cat_Dog'\n */\nexport function adaCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '_' })\n .map((part) => capitaliseWord(part))\n .join('');\n}\n/**\n * # 👔 COBOL-CASE\n * converts a string to COBOL-CASE\n * - hyphenated uppercase\n * - *strips away* special characters by default\n *\n * @example\n * cobolCase('$catDog') === 'CAT-DOG'\n * @example\n * cobolCase('$catDog', { keepSpecialCharacters: true }) === '$CAT-DOG'\n */\nexport function cobolCase(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '-' })\n .join('')\n .toUpperCase();\n}\n/**\n * # 📍 Dot.notation\n * converts a string to dot.notation\n * - adds dots, does not change casing\n * - *strips away* special characters by default\n *\n * @example\n * dotNotation('$catDog') === 'cat.Dog'\n * @example\n * dotNotation('$catDog', { keepSpecialCharacters: true }) === '$cat.Dog'\n */\nexport function dotNotation(string, options) {\n return splitAndPrefix(string, { ...options, prefix: '.' }).join('');\n}\n/**\n * # 📂 Path/case\n * converts a string to path/case\n * - adds slashes, does not change casing\n * - *keeps* special characters by default\n *\n * @example\n * pathCase('$catDog') === '$cat/Dog'\n * @example\n * pathCase('$catDog', { keepSpecialCharacters: false }) === 'cat/Dog'\n */\nexport function pathCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, options).reduce((result, word, i) => {\n const prefix = i === 0 || word[0] === '/' ? '' : '/';\n return result + prefix + word;\n }, '');\n}\n/**\n * # 🛰 Space case\n * converts a string to space case\n * - adds spaces, does not change casing\n * - *keeps* special characters by default\n *\n * @example\n * spaceCase('$catDog') === '$cat Dog'\n * @example\n * spaceCase('$catDog', { keepSpecialCharacters: false }) === 'cat Dog'\n */\nexport function spaceCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' }).join('');\n}\n/**\n * # 🏛 Capital Case\n * converts a string to Capital Case\n * - capitalizes words and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * capitalCase('$catDog') === '$Cat Dog'\n * @example\n * capitalCase('$catDog', { keepSpecialCharacters: false }) === 'Cat Dog'\n *\n * ⟪ if you do not want to add spaces, use `pascalCase()` ⟫\n */\nexport function capitalCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' }).reduce((result, word) => {\n return result + capitaliseWord(word);\n }, '');\n}\n/**\n * # 🔡 lower case\n * converts a string to lower case\n * - makes words lowercase and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * lowerCase('$catDog') === '$cat dog'\n * @example\n * lowerCase('$catDog', { keepSpecialCharacters: false }) === 'cat dog'\n *\n * ⟪ if you do not want to add spaces, use the native JS `toLowerCase()` ⟫\n */\nexport function lowerCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' })\n .join('')\n .toLowerCase();\n}\n/**\n * # 🔠 UPPER CASE\n * converts a string to UPPER CASE\n * - makes words upper case and adds spaces\n * - *keeps* special characters by default\n *\n * @example\n * upperCase('$catDog') === '$CAT DOG'\n * @example\n * upperCase('$catDog', { keepSpecialCharacters: false }) === 'CAT DOG'\n *\n * ⟪ if you do not want to add spaces, use the native JS `toUpperCase()` ⟫\n */\nexport function upperCase(string, options = { keepSpecialCharacters: true }) {\n return splitAndPrefix(string, { ...options, prefix: ' ' })\n .join('')\n .toUpperCase();\n}\n","function propsFactory(props, source) {\n return (defaults) => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === \"object\" && props[prop] != null && !Array.isArray(props[prop]);\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] };\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop]\n };\n } else {\n obj[prop] = definition;\n }\n if (source && !obj[prop].source) {\n obj[prop].source = source;\n }\n return obj;\n }, {});\n };\n}\nexport {\n propsFactory\n};\n//# sourceMappingURL=propsFactory.mjs.map\n","/* eslint-disable vue/prefer-import-from-vue */\nimport { getDefaultsForPropFactory } from './utils'\nimport { camelCase, kebabCase } from 'case-anything'\nimport { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport type { Merge } from 'type-fest'\nimport type { IfAny } from '@vue/shared'\nimport type { ExtractPublicDefaultPropTypes } from './utils'\nimport type { ComponentObjectPropsOptions, PropType, Prop, ExtractPublicPropTypes } from 'vue'\n/**\n * Interface for emit validator functions that return boolean values.\n * Used as input to the emitsFactory to define validation logic for Vue component emits.\n *\n * @example\n * ```typescript\n * const validators: EmitValidators = {\n * 'update:value': (newValue: string) => typeof newValue === 'string',\n * 'error': (error: Error) => error instanceof Error\n * }\n * ```\n */\ninterface EmitValidators {\n [key: string]: (...args: any[]) => boolean\n}\n\n/**\n * Mapped type that transforms emit validator functions to emit functions.\n * Converts functions that return `boolean` to functions that return `void`,\n * while preserving parameter types through conditional type inference.\n *\n * @template T - The emit validators object type\n *\n * @example\n * ```typescript\n * type Input = { save: (data: string) => boolean }\n * type Output = EmitFunctions<Input> // { save: (data: string) => void }\n * ```\n */\ntype EmitFunctions<T extends EmitValidators> = {\n [K in keyof T]: T[K] extends (...args: infer P) => boolean ? (...args: P) => void : never\n}\n\nexport type CastToEmitValidators<T extends EmitFunctions<EmitValidators>> = {\n [K in keyof T]: T[K] extends (...args: infer P) => void ? (...args: P) => boolean : never\n}\n\n/**\n * Type helper that generates emit handler prop types from emit validators.\n * Creates both camelCase and kebab-case variants for each emit.\n */\nexport type EmitHandlerProps<E extends EmitValidators> = {\n [K in keyof E as `on${Capitalize<string & K>}`]?: PropType<EmitFunctions<E>[K] | undefined>\n} & {\n [K in keyof E as K extends `${infer Prefix}:${infer Suffix}`\n ? `on${Capitalize<Prefix>}:${Suffix}`\n : never]?: PropType<EmitFunctions<E>[K] | undefined>\n}\n\ntype PartialKeys<T> = { [P in keyof T]?: unknown }\n\ntype InferPropType<T> = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n ? // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record<string, any>\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType<U>\n : InferPropType<U>\n : [T] extends [Prop<infer V, infer D>]\n ? unknown extends V\n ? IfAny<V, V, D>\n : V\n : T\n\ntype MergeTypeDefault<T, D, P = InferPropType<T>> = unknown extends D ? P : P | D\ntype MergeDefault<T, D, P = InferPropType<T>> = unknown extends D ? P : NonNullable<P> | D\n\ntype AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record<string, unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeTypeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n : {\n type: PropType<MergeTypeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n}\n\nexport type PropFactory<PropsOptions extends ComponentObjectPropsOptions> = <\n Defaults extends PartialKeys<PropsOptions> = {},\n>(\n defaults?: Defaults\n) => AppendDefault<PropsOptions, Defaults>\n\n/**\n * Factory function that converts emit validator functions to Vue-compatible emit functions.\n *\n * This utility solves the TypeScript integration challenge with Vue's emit system:\n * - Vue expects emit functions to return `void`\n * - Developers want validator functions that return `boolean` for validation logic\n * - This factory preserves runtime validation while providing correct TypeScript types\n *\n * @template T - The type of the validators object\n * @param validators - Object containing validator functions that return boolean\n * @returns The same object cast to have emit functions that return void\n *\n * @example\n * ```typescript\n * // Define validators with actual validation logic\n * const validators = {\n * 'update:modelValue': (value: string[]) => Array.isArray(value),\n * 'error': (error: unknown) => true, // Always allow error emissions\n * 'save': (data: SaveData) => data && typeof data.id === 'string'\n * }\n *\n * // Use in Vue component\n * export default defineComponent({\n * emits: emitsFactory(validators),\n * setup(props, { emit }) {\n * // emit functions are properly typed as (...args) => void\n * emit('update:modelValue', ['item1', 'item2'])\n * emit('error', new Error('Something went wrong'))\n * }\n * })\n * ```\n */\nexport const emitsFactory = <T extends EmitValidators>(validators: T): EmitFunctions<T> => {\n // Return the original validators but cast the type to emit functions\n return validators as unknown as EmitFunctions<T>\n}\n\nexport const getCamelAndMaybeKebabPropKeysFor = (key: string): { camel: string; kebab: string } => {\n const camelPropKey = key\n .split(':')\n .map((p, i) => (i === 0 ? camelCase(['on', p].join('_')) : camelCase(p)))\n .join(':')\n const maybeKebabPropKey = key\n .split(':')\n .map((p, i) => (i === 0 ? camelCase(['on', p].join('_')) : kebabCase(p)))\n .join(':')\n return { camel: camelPropKey, kebab: maybeKebabPropKey }\n}\n\n/**\n * Factory function that creates both props and emits for Vue components with automatic\n * emit handler prop generation.\n *\n * This utility automatically generates corresponding prop handlers for each emit event,\n * supporting both camelCase and kebab-case naming conventions to maximize template\n * syntax flexibility. For each emit, it creates props that allow users to bind handlers\n * using either `:onEventName` or `@event-name` syntax.\n *\n * The returned `makeProps` function includes full TypeScript support for both the original\n * props and the automatically generated emit handler props, ensuring type safety throughout\n * component development.\n *\n * @template P - The type of the component props object\n * @template E - The type of the emit validators object\n * @param props - Component props object that will be extended with emit handler props\n * @param emits - Object containing emit validator functions\n * @param source - Source identifier for the props factory (used for debugging/tooling)\n * @returns Object containing makeProps and emits functions\n * @returns makeProps - Props factory function that includes original props + emit handler props with full TypeScript support\n * @returns emits - Emit functions converted from validators with proper void return types\n *\n * @example\n * ```typescript\n * // Define your component props and emits\n * const componentProps = {\n * value: String,\n * disabled: Boolean\n * }\n *\n * const componentEmits = {\n * 'update:modelValue': (value: string) => typeof value === 'string',\n * 'item:selected': (item: Item) => item && typeof item.id === 'string'\n * }\n *\n * // Create factories\n * const { makeProps, emits } = propsAndEmitsFactory(\n * componentProps,\n * componentEmits,\n * 'MyComponent'\n * )\n *\n * // makeProps() returns props with full TypeScript intellisense for:\n * // - Original props: value, disabled\n * // - Generated emit handlers: onUpdate:modelValue, onUpdateModelValue, onItem:selected, onItemSelected\n * export default defineComponent({\n * props: makeProps(),\n * emits,\n * setup(props, { emit }) {\n * // All props are properly typed including emit handlers\n * props.onUpdateModelValue?.(newValue)\n * emit('update:modelValue', newValue)\n * }\n * })\n *\n * // Template supports both syntaxes:\n * // <MyComponent :onUpdate:modelValue=\"handler\" />\n * // <MyComponent :onUpdate:model-value=\"handler\" />\n * // <MyComponent :onItem:selected=\"handler\" />\n * // <MyComponent :onItem:item-selected=\"handler\" />\n * ```\n */\nexport const propsAndEmitsFactory = <\n P extends ComponentObjectPropsOptions,\n E extends EmitValidators,\n>(\n props: P,\n emits: E,\n source: string\n): {\n makeProps: PropFactory<Merge<P, EmitHandlerProps<E>>>\n emits: EmitFunctions<E>\n} => {\n const makeEmits = emitsFactory(emits)\n for (const key in emits) {\n const { camel: camelPropKey, kebab: maybeKebabPropKey } = getCamelAndMaybeKebabPropKeysFor(key)\n if ('undefined' === typeof props[camelPropKey]) {\n // @ts-ignore\n props[camelPropKey] = {\n type: Function as PropType<EmitFunctions<E>[typeof key] | undefined>,\n default: undefined,\n }\n }\n if ('undefined' === typeof props[maybeKebabPropKey]) {\n // @ts-ignore\n props[maybeKebabPropKey] = {\n type: Function as PropType<EmitFunctions<E>[typeof key] | undefined>,\n default: undefined,\n }\n }\n }\n const makeProps = propsFactory(props as unknown as Merge<P, EmitHandlerProps<E>>, source)\n return {\n makeProps,\n emits: makeEmits,\n }\n}\n\nexport const propsAndDefaultsFactory = <P extends ComponentObjectPropsOptions>(\n props: P,\n source: string\n): { factory: PropFactory<P>; defaults: ExtractPublicDefaultPropTypes<P> } => {\n const factory = propsFactory(props, source) as PropFactory<P>\n const defaults = getDefaultsForPropFactory(factory as any) as ExtractPublicDefaultPropTypes<P>\n return { factory, defaults }\n}\n\nexport type ExtractPublicPropTypesFromFactory<T extends PropFactory<any>> = ExtractPublicPropTypes<\n ReturnType<T>\n>\n\nexport type ExtractPublicPropTypesFromUnknownFactory<T extends (...args: any) => any> =\n ExtractPublicPropTypes<ReturnType<T>>\n\n/**\n * Transforms emit validators or emit functions into hookable event types.\n *\n * Each event gets converted to a tuple with two signatures:\n * 1. Hook handler signature - receives the original event parameters\n * 2. Cleanup function signature - receives Error | null plus the original parameters\n *\n * @template T - The emit validators or emit functions object type\n *\n * @example\n * ```typescript\n * const emits = {\n * saving: (model: BaseModel) => true,\n * finding: (query: QueryBuilder) => true\n * }\n *\n * type Events = HookableEvents<typeof emits>\n * // {\n * // saving: [\n * // [BaseModel], // for hook handler\n * // [error: Error | null, BaseModel], // for cleanup function\n * // ],\n * // finding: [\n * // [QueryBuilder], // for hook handler\n * // [error: Error | null, QueryBuilder], // for cleanup function\n * // ]\n * // }\n * ```\n */\nexport type HookableEvents<T extends EmitValidators | EmitFunctions<EmitValidators>> = {\n [K in keyof T]: T[K] extends (...args: infer P) => boolean | void\n ? [callbackArgs: [...P], cleanupCallbackArgs: [error: Error | null, ...P]]\n : never\n}\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map2 = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map2[key] = 1;\n return (val) => val in map2;\n}\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty$1.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst isRef$1 = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef$1(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n/**\n* @vue/reactivity v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n this._active = true;\n this._on = 0;\n this.effects = [];\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n activeEffectScope = this.prevScope;\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\nlet activeSub;\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n this.deps = void 0;\n this.depsTail = void 0;\n this.flags = 1 | 4;\n this.next = void 0;\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn$2(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed2) {\n if (computed2.flags & 4 && !(computed2.flags & 16)) {\n return;\n }\n computed2.flags &= -17;\n if (computed2.globalVersion === globalVersion) {\n return;\n }\n computed2.globalVersion = globalVersion;\n if (!computed2.isSSR && computed2.flags & 128 && (!computed2.deps && !computed2._dirty || !isDirty(computed2))) {\n return;\n }\n computed2.flags |= 2;\n const dep = computed2.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed2;\n shouldTrack = true;\n try {\n prepareDeps(computed2);\n const value = computed2.fn(computed2._value);\n if (dep.version === 0 || hasChanged(value, computed2._value)) {\n computed2.flags |= 128;\n computed2._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed2);\n computed2.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed2) {\n this.computed = computed2;\n this.version = 0;\n this.activeLink = void 0;\n this.subs = void 0;\n this.map = void 0;\n this.key = void 0;\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed2 = link.dep.computed;\n if (computed2 && !link.dep.subs) {\n computed2.flags |= 4 | 16;\n for (let l = computed2.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self2, method, wrapValue) {\n const arr = shallowReadArray(self2);\n const iter = arr[method]();\n if (arr !== self2 && !isShallow(self2)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self2, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self2);\n const needsWrap = arr !== self2 && !isShallow(self2);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self2, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self2) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self2);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self2);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self2, method, fn, args) {\n const arr = shallowReadArray(self2);\n let wrappedFn = fn;\n if (arr !== self2) {\n if (!isShallow(self2)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self2);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self2);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self2, method, args) {\n const arr = toRaw(self2);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self2, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self2)[method].apply(self2, args);\n endBatch();\n resetTracking();\n return res;\n}\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly2, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly2) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly2) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive;\n !readonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly2 ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly2, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n this._value = void 0;\n this.dep = new Dep(this);\n this.__v_isRef = true;\n this.deps = void 0;\n this.depsTail = void 0;\n this.flags = 16;\n this.globalVersion = globalVersion - 1;\n this.next = void 0;\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions) ;\n return cRef;\n}\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn$2(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch$1(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn$2)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n/**\n* @vue/runtime-core v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version2) {\n emit$1(\"app:init\", app, version2, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\", app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\"\n /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:updated\"\n /* COMPONENT_UPDATED */\n);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\"\n /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\"\n /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\"\n /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\",\n component.appContext.app,\n component,\n event,\n params\n );\n}\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n n2.el.__isMounted = false;\n queuePostRenderEffect(() => {\n mountToTarget();\n delete n2.el.__isMounted;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook2 = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook2(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook2(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook2(cancelHook, [el]);\n } else {\n callHook2(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove2) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove2();\n }\n callHook2(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove2();\n if (cancelled) {\n callHook2(onLeaveCancelled, [el]);\n } else {\n callHook2(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref3 } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref3) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref3)) {\n callWithErrorHandling(ref3, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref3);\n const _isRef = isRef(ref3);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref3) ? setupState[ref3] : refs[ref3] : ref3.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref3] = [refValue];\n if (canSetSetupRef(ref3)) {\n setupState[ref3] = refs[ref3];\n }\n } else {\n ref3.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref3.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref3] = value;\n if (canSetSetupRef(ref3)) {\n setupState[ref3] = value;\n }\n } else if (_isRef) {\n ref3.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref3, `(${typeof ref3})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref3, `(${typeof ref3})`);\n }\n }\n}\ngetGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\ngetGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => resolveMergedOptions(i),\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => instanceWatch.bind(i)\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1:\n return setupState[key];\n case 2:\n return data[key];\n case 4:\n return ctx[key];\n case 3:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (shouldCacheAccess) {\n accessCache[key] = 0;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\", key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\", key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\", key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\", key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\", key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return extend(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n const cloned = cloneVNode(vnode);\n cloned.el = null;\n render(cloned, rootContainer, namespace);\n };\n }\n {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n if (hasOwn(context.provides, key)) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n } else {\n warn$1(\n `App already provides property with key \"${String(key)}\" inherited from its parent element. It will be overwritten with the new value.`\n );\n }\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[\n 0\n /* shouldCast */\n ]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[\n 1\n /* shouldCastTrue */\n ] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (!isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[\n 0\n /* shouldCast */\n ] = shouldCast;\n prop[\n 1\n /* shouldCastTrue */\n ] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !camelizePropsKey.includes(key)\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || !isInternalKey(key)) {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\nfunction initFeatureFlags() {\n const needWarn = [];\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\nconst queuePostRenderEffect = queueEffectWithSuspense;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref: ref3, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref3 != null && parentComponent) {\n setRef(ref3, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n );\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n {\n if (root.ce) {\n root.ce._injectChildStyle(type);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect2 = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect2.run.bind(effect2);\n const job = instance.job = effect2.runIfDirty.bind(effect2);\n job.i = instance;\n job.id = instance.uid;\n effect2.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect2.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect2.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove22 = () => {\n if (vnode.ctx.isUnmounted) {\n hostRemove(el);\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const performLeave = () => {\n leave(el, () => {\n remove22();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove22, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref: ref3,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref3 != null) {\n pauseTracking();\n setRef(ref3, null, parentSuspense, vnode, true);\n resetTracking();\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove2(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove2 = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove2(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const {\n bum,\n scope,\n job,\n subTree,\n um,\n m,\n a,\n parent,\n slots: { __: slotCacheKeys }\n } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n if (parent && isArray(slotCacheKeys)) {\n slotCacheKeys.forEach((v) => {\n parent.renderCache[v] = void 0;\n });\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove2,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n return {\n render,\n hydrate,\n createApp: createAppAPI(render)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect: effect2, job }, allowed) {\n if (allowed) {\n effect2.flags |= 32;\n job.flags |= 4;\n } else {\n effect2.flags &= -33;\n job.flags &= -5;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n c2.el && (c2.el.__vnode = c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\nfunction watchEffect(effect2, options) {\n return doWatch(effect2, null, options);\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener2 = event.startsWith(\"update:\");\n const modifiers = isModelListener2 && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener2) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (!isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit: emit2,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit: emit2\n } : { attrs, slots, emit: emit2 }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\nconst isSuspense = (type) => type.__isSuspense;\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nlet currentBlock = null;\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value, inVOnce = false) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock && inVOnce) {\n currentBlock.hasOnce = true;\n }\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= -257;\n n2.shapeFlag &= -513;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref: ref3,\n ref_key,\n ref_for\n}) => {\n if (typeof ref3 === \"number\") {\n ref3 = \"\" + ref3;\n }\n return ref3 != null ? isString(ref3) || isRef(ref3) || isFunction(ref3) ? { i: currentRenderingInstance, r: ref3, k: ref_key, f: !!ref_for } : ref3 : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref: ref3, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref3 ? isArray(ref3) ? ref3.concat(normalizeRef(extraProps)) : [ref3, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref3,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized || isSSR);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n pauseTracking();\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n const isAsyncSetup = isPromise(setupResult);\n resetTracking();\n reset();\n if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {\n markAsyncBoundary(instance);\n }\n if (isAsyncSetup) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nconst isRuntimeOnly = () => true;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n instance.render = Component.render || NOOP;\n }\n {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n pauseTracking();\n const value = obj.value;\n resetTracking();\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed2 = extractKeys(instance, \"computed\");\n if (computed2) {\n blocks.push(createInstanceBlock(\"computed\", computed2));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\nconst version = \"3.5.16\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\n!!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\n!!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\n/**\n* vue v3.5.16\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nexport {\n Text as $,\n h as A,\n defineComponent as B,\n Comment as C,\n getCurrentInstance as D,\n warn as E,\n Fragment as F,\n toValue as G,\n readonly as H,\n toRaw as I,\n effectScope as J,\n isRef as K,\n markRaw as L,\n extend as M,\n BaseTransitionPropsValidators as N,\n looseToNumber as O,\n invokeArrayFns as P,\n isArray as Q,\n createRenderer as R,\n BaseTransition as S,\n isObject as T,\n assertNumber as U,\n toNumber as V,\n useTransitionState as W,\n onUpdated as X,\n getTransitionRawChildren as Y,\n setTransitionHooks as Z,\n resolveTransitionHooks as _,\n camelize as a,\n isOn as a0,\n isModelListener as a1,\n isSpecialBooleanAttr as a2,\n isString as a3,\n isFunction as a4,\n includeBooleanAttr as a5,\n isSymbol as a6,\n hyphenate as a7,\n NOOP as a8,\n callWithAsyncErrorHandling as a9,\n resolveDynamicComponent as aa,\n nextTick as ab,\n createTextVNode as ac,\n onBeforeMount as ad,\n onBeforeUpdate as ae,\n resolveComponent as af,\n onUnmounted as ag,\n cloneVNode as ah,\n Teleport as ai,\n inject as b,\n capitalize as c,\n computed as d,\n ref as e,\n toRefs as f,\n onMounted as g,\n useId as h,\n isVNode as i,\n onDeactivated as j,\n onActivated as k,\n onBeforeUnmount as l,\n getCurrentScope as m,\n watch as n,\n onScopeDispose as o,\n provide as p,\n createVNode as q,\n reactive as r,\n shallowRef as s,\n toRef as t,\n unref as u,\n mergeProps as v,\n watchEffect as w,\n toDisplayString as x,\n withDirectives as y,\n resolveDirective as z\n};\n//# sourceMappingURL=vue.runtime.esm-bundler-BRffRTPw.mjs.map\n","var __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar _arr, _pointer;\nimport { s as shallowRef, r as reactive, w as watchEffect, t as toRef, F as Fragment, c as capitalize, u as unref, a as camelize, i as isVNode, C as Comment } from \"../vue.runtime.esm-bundler-BRffRTPw.mjs\";\nimport { IN_BROWSER } from \"./globals.mjs\";\nfunction getNestedValue(obj, path, fallback) {\n const last = path.length - 1;\n if (last < 0) return obj === void 0 ? fallback : obj;\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n if (obj == null) return fallback;\n return obj[path[last]] === void 0 ? fallback : obj[path[last]];\n}\nfunction deepEqual(a, b) {\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n return false;\n }\n return props.every((p) => deepEqual(a[p], b[p]));\n}\nfunction getObjectValueByPath(obj, path, fallback) {\n if (obj == null || !path || typeof path !== \"string\") return fallback;\n if (obj[path] !== void 0) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, \".$1\");\n path = path.replace(/^\\./, \"\");\n return getNestedValue(obj, path.split(\".\"), fallback);\n}\nfunction getPropertyFromItem(item, property, fallback) {\n if (property === true) return item === void 0 ? fallback : item;\n if (property == null || typeof property === \"boolean\") return fallback;\n if (item !== Object(item)) {\n if (typeof property !== \"function\") return fallback;\n const value2 = property(item, fallback);\n return typeof value2 === \"undefined\" ? fallback : value2;\n }\n if (typeof property === \"string\")\n return getObjectValueByPath(item, property, fallback);\n if (Array.isArray(property)) return getNestedValue(item, property, fallback);\n if (typeof property !== \"function\") return fallback;\n const value = property(item, fallback);\n return typeof value === \"undefined\" ? fallback : value;\n}\nfunction createRange(length, start = 0) {\n return Array.from({ length }, (v, k) => start + k);\n}\nfunction getZIndex(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;\n const index = Number(window.getComputedStyle(el).getPropertyValue(\"z-index\"));\n if (!index) return getZIndex(el.parentNode);\n return index;\n}\nfunction convertToUnit(str, unit = \"px\") {\n if (str == null || str === \"\") {\n return void 0;\n }\n const num = Number(str);\n if (isNaN(num)) {\n return String(str);\n } else if (!isFinite(num)) {\n return void 0;\n } else {\n return `${num}${unit}`;\n }\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === \"object\" && !Array.isArray(obj);\n}\nfunction isPlainObject(obj) {\n let proto;\n return obj !== null && typeof obj === \"object\" && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);\n}\nfunction refElement(obj) {\n if (obj && \"$el\" in obj) {\n const el = obj.$el;\n if ((el == null ? void 0 : el.nodeType) === Node.TEXT_NODE) {\n return el.nextElementSibling;\n }\n return el;\n }\n return obj;\n}\nconst keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16\n});\nconst keyValues = Object.freeze({\n enter: \"Enter\",\n tab: \"Tab\",\n delete: \"Delete\",\n esc: \"Escape\",\n space: \"Space\",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n left: \"ArrowLeft\",\n right: \"ArrowRight\",\n end: \"End\",\n home: \"Home\",\n del: \"Delete\",\n backspace: \"Backspace\",\n insert: \"Insert\",\n pageup: \"PageUp\",\n pagedown: \"PageDown\",\n shift: \"Shift\"\n});\nfunction keys(o) {\n return Object.keys(o);\n}\nfunction has(obj, key) {\n return key.every((k) => obj.hasOwnProperty(k));\n}\nfunction pick(obj, paths) {\n const found = {};\n for (const key of paths) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n found[key] = obj[key];\n }\n }\n return found;\n}\nfunction pickWithRest(obj, paths, exclude) {\n const found = /* @__PURE__ */ Object.create(null);\n const rest = /* @__PURE__ */ Object.create(null);\n for (const key in obj) {\n if (paths.some(\n (path) => path instanceof RegExp ? path.test(key) : path === key\n ) && !(exclude == null ? void 0 : exclude.some((path) => path === key))) {\n found[key] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n }\n return [found, rest];\n}\nfunction omit(obj, exclude) {\n const clone = { ...obj };\n exclude.forEach((prop) => delete clone[prop]);\n return clone;\n}\nconst onRE = /^on[^a-z]/;\nconst isOn = (key) => onRE.test(key);\nconst bubblingEvents = [\n \"onAfterscriptexecute\",\n \"onAnimationcancel\",\n \"onAnimationend\",\n \"onAnimationiteration\",\n \"onAnimationstart\",\n \"onAuxclick\",\n \"onBeforeinput\",\n \"onBeforescriptexecute\",\n \"onChange\",\n \"onClick\",\n \"onCompositionend\",\n \"onCompositionstart\",\n \"onCompositionupdate\",\n \"onContextmenu\",\n \"onCopy\",\n \"onCut\",\n \"onDblclick\",\n \"onFocusin\",\n \"onFocusout\",\n \"onFullscreenchange\",\n \"onFullscreenerror\",\n \"onGesturechange\",\n \"onGestureend\",\n \"onGesturestart\",\n \"onGotpointercapture\",\n \"onInput\",\n \"onKeydown\",\n \"onKeypress\",\n \"onKeyup\",\n \"onLostpointercapture\",\n \"onMousedown\",\n \"onMousemove\",\n \"onMouseout\",\n \"onMouseover\",\n \"onMouseup\",\n \"onMousewheel\",\n \"onPaste\",\n \"onPointercancel\",\n \"onPointerdown\",\n \"onPointerenter\",\n \"onPointerleave\",\n \"onPointermove\",\n \"onPointerout\",\n \"onPointerover\",\n \"onPointerup\",\n \"onReset\",\n \"onSelect\",\n \"onSubmit\",\n \"onTouchcancel\",\n \"onTouchend\",\n \"onTouchmove\",\n \"onTouchstart\",\n \"onTransitioncancel\",\n \"onTransitionend\",\n \"onTransitionrun\",\n \"onTransitionstart\",\n \"onWheel\"\n];\nconst compositionIgnoreKeys = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowRight\",\n \"ArrowLeft\",\n \"Enter\",\n \"Escape\",\n \"Tab\",\n \" \"\n];\nfunction isComposingIgnoreKey(e) {\n return e.isComposing && compositionIgnoreKeys.includes(e.key);\n}\nfunction filterInputAttrs(attrs) {\n const [events, props] = pickWithRest(attrs, [onRE]);\n const inputEvents = omit(events, bubblingEvents);\n const [rootAttrs, inputAttrs] = pickWithRest(props, [\n \"class\",\n \"style\",\n \"id\",\n /^data-/\n ]);\n Object.assign(rootAttrs, events);\n Object.assign(inputAttrs, inputEvents);\n return [rootAttrs, inputAttrs];\n}\nfunction arrayDiff(a, b) {\n const diff = [];\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i]);\n }\n return diff;\n}\nfunction wrapInArray(v) {\n return v == null ? [] : Array.isArray(v) ? v : [v];\n}\nfunction defaultFilter(value, search, item) {\n return value != null && search != null && typeof value !== \"boolean\" && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1;\n}\nfunction debounce(fn, delay) {\n let timeoutId = 0;\n const wrap = (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), unref(delay));\n };\n wrap.clear = () => {\n clearTimeout(timeoutId);\n };\n wrap.immediate = fn;\n return wrap;\n}\nfunction throttle(fn, limit) {\n let throttling = false;\n return (...args) => {\n if (!throttling) {\n throttling = true;\n setTimeout(() => throttling = false, limit);\n return fn(...args);\n }\n };\n}\nfunction clamp(value, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value));\n}\nfunction getDecimals(value) {\n const trimmedStr = value.toString().trim();\n return trimmedStr.includes(\".\") ? trimmedStr.length - trimmedStr.indexOf(\".\") - 1 : 0;\n}\nfunction padEnd(str, length, char = \"0\") {\n return str + char.repeat(Math.max(0, length - str.length));\n}\nfunction padStart(str, length, char = \"0\") {\n return char.repeat(Math.max(0, length - str.length)) + str;\n}\nfunction chunk(str, size = 1) {\n const chunked = [];\n let index = 0;\n while (index < str.length) {\n chunked.push(str.substr(index, size));\n index += size;\n }\n return chunked;\n}\nfunction chunkArray(array, size = 1) {\n return Array.from(\n { length: Math.ceil(array.length / size) },\n (v, i) => array.slice(i * size, i * size + size)\n );\n}\nfunction humanReadableFileSize(bytes, base = 1e3) {\n if (bytes < base) {\n return `${bytes} B`;\n }\n const prefix = base === 1024 ? [\"Ki\", \"Mi\", \"Gi\"] : [\"k\", \"M\", \"G\"];\n let unit = -1;\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base;\n ++unit;\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`;\n}\nfunction mergeDeep(source = {}, target = {}, arrayFn) {\n const out = {};\n for (const key in source) {\n out[key] = source[key];\n }\n for (const key in target) {\n const sourceProperty = source[key];\n const targetProperty = target[key];\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);\n continue;\n }\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty);\n continue;\n }\n out[key] = targetProperty;\n }\n return out;\n}\nfunction flattenFragments(nodes) {\n return nodes.map((node) => {\n if (node.type === Fragment) {\n return flattenFragments(node.children);\n } else {\n return node;\n }\n }).flat();\n}\nfunction toKebabCase(str = \"\") {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);\n const kebab = str.replace(/[^a-z]/gi, \"-\").replace(/\\B([A-Z])/g, \"-$1\").toLowerCase();\n toKebabCase.cache.set(str, kebab);\n return kebab;\n}\ntoKebabCase.cache = /* @__PURE__ */ new Map();\nfunction findChildrenWithProvide(key, vnode) {\n if (!vnode || typeof vnode !== \"object\") return [];\n if (Array.isArray(vnode)) {\n return vnode.map((child) => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map((child) => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(\n key\n )) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n return [];\n}\nclass CircularBuffer {\n constructor(size) {\n __privateAdd(this, _arr, []);\n __privateAdd(this, _pointer, 0);\n this.size = size;\n }\n get isFull() {\n return __privateGet(this, _arr).length === this.size;\n }\n push(val) {\n __privateGet(this, _arr)[__privateGet(this, _pointer)] = val;\n __privateSet(this, _pointer, (__privateGet(this, _pointer) + 1) % this.size);\n }\n values() {\n return __privateGet(this, _arr).slice(__privateGet(this, _pointer)).concat(__privateGet(this, _arr).slice(0, __privateGet(this, _pointer)));\n }\n clear() {\n __privateGet(this, _arr).length = 0;\n __privateSet(this, _pointer, 0);\n }\n}\n_arr = new WeakMap();\n_pointer = new WeakMap();\nfunction getEventCoordinates(e) {\n if (\"touches\" in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };\n }\n return { clientX: e.clientX, clientY: e.clientY };\n}\nfunction destructComputed(getter) {\n const refs = reactive({});\n watchEffect(\n () => {\n const base = getter();\n for (const key in base) {\n refs[key] = base[key];\n }\n },\n { flush: \"sync\" }\n );\n const obj = {};\n for (const key in refs) {\n obj[key] = toRef(() => refs[key]);\n }\n return obj;\n}\nfunction includes(arr, val) {\n return arr.includes(val);\n}\nfunction eventName(propName) {\n return propName[2].toLowerCase() + propName.slice(3);\n}\nconst EventProp = () => [Function, Array];\nfunction hasEvent(props, name) {\n name = \"on\" + capitalize(name);\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);\n}\nfunction callEvent(handler, ...args) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args);\n }\n } else if (typeof handler === \"function\") {\n handler(...args);\n }\n}\nfunction focusableChildren(el, filterByTabIndex = true) {\n const targets = [\n \"button\",\n \"[href]\",\n 'input:not([type=\"hidden\"])',\n \"select\",\n \"textarea\",\n \"[tabindex]\"\n ].map(\n (s) => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : \"\"}:not([disabled])`\n ).join(\", \");\n return [...el.querySelectorAll(targets)];\n}\nfunction getNextElement(elements, location, condition) {\n let _el;\n let idx = elements.indexOf(document.activeElement);\n const inc = location === \"next\" ? 1 : -1;\n do {\n idx += inc;\n _el = elements[idx];\n } while ((!_el || _el.offsetParent == null || !((condition == null ? void 0 : condition(_el)) ?? true)) && idx < elements.length && idx >= 0);\n return _el;\n}\nfunction focusChild(el, location) {\n var _a, _b, _c, _d;\n const focusable = focusableChildren(el);\n if (location == null) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n (_a = focusable[0]) == null ? void 0 : _a.focus();\n }\n } else if (location === \"first\") {\n (_b = focusable[0]) == null ? void 0 : _b.focus();\n } else if (location === \"last\") {\n (_c = focusable.at(-1)) == null ? void 0 : _c.focus();\n } else if (typeof location === \"number\") {\n (_d = focusable[location]) == null ? void 0 : _d.focus();\n } else {\n const _el = getNextElement(focusable, location);\n if (_el) _el.focus();\n else focusChild(el, location === \"next\" ? \"first\" : \"last\");\n }\n}\nfunction isEmpty(val) {\n return val === null || val === void 0 || typeof val === \"string\" && val.trim() === \"\";\n}\nfunction noop() {\n}\nfunction matchesSelector(el, selector) {\n const supportsSelector = IN_BROWSER && typeof CSS !== \"undefined\" && typeof CSS.supports !== \"undefined\" && CSS.supports(`selector(${selector})`);\n if (!supportsSelector) return null;\n try {\n return !!el && el.matches(selector);\n } catch (err) {\n return null;\n }\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n return child.type !== Fragment || ensureValidVNode(child.children);\n }) ? vnodes : null;\n}\nfunction renderSlot(slot, props, fallback) {\n return (slot == null ? void 0 : slot(props)) ?? (fallback == null ? void 0 : fallback(props));\n}\nfunction defer(timeout, cb) {\n if (!IN_BROWSER || timeout === 0) {\n cb();\n return () => {\n };\n }\n const timeoutId = window.setTimeout(cb, timeout);\n return () => window.clearTimeout(timeoutId);\n}\nfunction isClickInsideElement(event, targetDiv) {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const divRect = targetDiv.getBoundingClientRect();\n const divLeft = divRect.left;\n const divTop = divRect.top;\n const divRight = divRect.right;\n const divBottom = divRect.bottom;\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;\n}\nfunction templateRef() {\n const el = shallowRef();\n const fn = (target) => {\n el.value = target;\n };\n Object.defineProperty(fn, \"value\", {\n enumerable: true,\n get: () => el.value,\n set: (val) => el.value = val\n });\n Object.defineProperty(fn, \"el\", {\n enumerable: true,\n get: () => refElement(el.value)\n });\n return fn;\n}\nfunction checkPrintable(e) {\n const isPrintableChar = e.key.length === 1;\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;\n return isPrintableChar && noModifier;\n}\nfunction isPrimitive(value) {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"bigint\";\n}\nfunction escapeForRegex(sign) {\n return \"\\\\^$*+?.()|{}[]\".includes(sign) ? `\\\\${sign}` : sign;\n}\nfunction extractNumber(text, decimalDigitsLimit, decimalSeparator) {\n const onlyValidCharacters = new RegExp(\n `[\\\\d\\\\-${escapeForRegex(decimalSeparator)}]`\n );\n const cleanText = text.split(\"\").filter((x) => onlyValidCharacters.test(x)).filter(\n (x, i, all) => i === 0 && /[-]/.test(x) || // sign allowed at the start\n x === decimalSeparator && i === all.indexOf(x) || // decimal separator allowed only once\n /\\d/.test(x)\n ).join(\"\");\n if (decimalDigitsLimit === 0) {\n return cleanText.split(decimalSeparator)[0];\n }\n const decimalPart = new RegExp(`${escapeForRegex(decimalSeparator)}\\\\d`);\n if (decimalDigitsLimit !== null && decimalPart.test(cleanText)) {\n const parts = cleanText.split(decimalSeparator);\n return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join(\n decimalSeparator\n );\n }\n return cleanText;\n}\nfunction camelizeProps(props) {\n const out = {};\n for (const prop in props) {\n out[camelize(prop)] = props[prop];\n }\n return out;\n}\nfunction onlyDefinedProps(props) {\n const booleanAttributes = [\"checked\", \"disabled\"];\n return Object.fromEntries(\n Object.entries(props).filter(\n ([key, v]) => booleanAttributes.includes(key) ? !!v : v !== void 0\n )\n );\n}\nexport {\n CircularBuffer,\n EventProp,\n arrayDiff,\n callEvent,\n camelizeProps,\n checkPrintable,\n chunk,\n chunkArray,\n clamp,\n convertToUnit,\n createRange,\n debounce,\n deepEqual,\n defaultFilter,\n defer,\n destructComputed,\n ensureValidVNode,\n escapeForRegex,\n eventName,\n extractNumber,\n filterInputAttrs,\n findChildrenWithProvide,\n flattenFragments,\n focusChild,\n focusableChildren,\n getDecimals,\n getEventCoordinates,\n getNestedValue,\n getNextElement,\n getObjectValueByPath,\n getPropertyFromItem,\n getZIndex,\n has,\n hasEvent,\n humanReadableFileSize,\n includes,\n isClickInsideElement,\n isComposingIgnoreKey,\n isEmpty,\n isObject,\n isOn,\n isPlainObject,\n isPrimitive,\n keyCodes,\n keyValues,\n keys,\n matchesSelector,\n mergeDeep,\n noop,\n omit,\n onlyDefinedProps,\n padEnd,\n padStart,\n pick,\n pickWithRest,\n refElement,\n renderSlot,\n templateRef,\n throttle,\n toKebabCase,\n wrapInArray\n};\n//# sourceMappingURL=helpers.mjs.map\n","import { D as getCurrentInstance$1 } from \"../vue.runtime.esm-bundler-BRffRTPw.mjs\";\nimport { toKebabCase } from \"./helpers.mjs\";\nfunction getCurrentInstance(name, message) {\n const vm = getCurrentInstance$1();\n if (!vm) {\n throw new Error(\n `[Vuetify] ${name} ${message || \"must be called from inside a setup function\"}`\n );\n }\n return vm;\n}\nfunction getCurrentInstanceName(name = \"composables\") {\n const vm = getCurrentInstance(name).type;\n return toKebabCase((vm == null ? void 0 : vm.aliasName) || (vm == null ? void 0 : vm.name));\n}\nexport {\n getCurrentInstance,\n getCurrentInstanceName\n};\n//# sourceMappingURL=getCurrentInstance.mjs.map\n","import { isObject } from './guards'\nimport { encode } from '@nhtio/lucid-resourceful/encoding'\nimport { getCamelAndMaybeKebabPropKeysFor } from './factories'\nimport { debounce, throttle } from '@nhtio/vuetifiable/util/helpers'\nimport { toRaw, toValue, ref, toRef, computed, warn, nextTick } from 'vue'\nimport {\n getCurrentInstanceName,\n getCurrentInstance,\n} from '@nhtio/vuetifiable/util/getCurrentInstance'\nimport type { propsFactory } from '@nhtio/vuetifiable/util/propsFactory'\nimport type {\n ExtractPublicPropTypes,\n ExtractDefaultPropTypes,\n MaybeRefOrGetter,\n Slot,\n VNode,\n PropType,\n Ref,\n} from 'vue'\n\nexport type ObjectStrippedOfUndefinedValues<T extends Record<string, any>> = {\n [K in keyof T as T[K] extends undefined ? never : K]: T[K] extends undefined ? never : T[K]\n}\n\n/**\n * Removes all properties with `undefined` values from an object.\n * This is useful for cleaning up objects before passing them to APIs or components\n * that should not receive undefined values.\n *\n * @template T - The type of the input object\n * @param obj - The object to process\n * @returns A new object with all undefined values removed\n *\n * @example\n * ```typescript\n * const input = { a: 1, b: undefined, c: 'hello', d: undefined }\n * const result = stripUndefinedValuesFromObject(input)\n * // result: { a: 1, c: 'hello' }\n * ```\n */\nexport const stripUndefinedValuesFromObject = <T extends Record<string, any>>(\n obj: T\n): ObjectStrippedOfUndefinedValues<T> => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => value !== undefined)\n ) as ObjectStrippedOfUndefinedValues<T>\n}\n\n/**\n * Extract default values for properties that are both public and have defaults.\n * This ensures we only get defaults for props that are actually exposed to consumers.\n *\n * This type intersects the keys from both `ExtractDefaultPropTypes` and `ExtractPublicPropTypes`\n * to create a type that only includes properties that are:\n * - Public (exposed to component consumers)\n * - Have default values defined\n * - Are not nullable/undefined\n *\n * @template O - The props object type to extract from\n *\n * @example\n * ```typescript\n * type MyProps = {\n * publicWithDefault: { type: StringConstructor, default: 'hello' }\n * publicRequired: { type: NumberConstructor, required: true }\n * privateWithDefault: { type: BooleanConstructor, default: false, __internal: true }\n * }\n *\n * type Defaults = ExtractPublicDefaultPropTypes<MyProps>\n * // Result: { publicWithDefault: string }\n * ```\n */\nexport type ExtractPublicDefaultPropTypes<O> = {\n [K in keyof ExtractDefaultPropTypes<O> & keyof ExtractPublicPropTypes<O>]: NonNullable<\n ExtractDefaultPropTypes<O>[K]\n >\n}\n\n/**\n * Type representing the return value of a Vuetifiable props factory function.\n * This is used to constrain the generic parameter in `getDefaultsForPropFactory`.\n */\nexport type PropFactory = ReturnType<typeof propsFactory>\n\n/**\n * Extracts default values from a Vuetifiable props factory and returns them as a runtime object.\n * This is useful for getting default prop values for component initialization or testing.\n *\n * The function handles different types of default values:\n * - Primitive defaults (string, number, boolean) are returned as-is\n * - Reference type defaults (Object, Array, etc.) defined as functions are called to get fresh instances\n * - Props without defaults are completely excluded from the result\n * - The result is cleaned to ensure no undefined values slip through\n *\n * Type safety is enforced at both compile-time (via NonNullable) and runtime (via stripUndefinedValuesFromObject).\n *\n * @template T - The props factory type, constrained to `PropFactory`\n * @template ExtractedPublicProperties - The extracted public properties with non-nullable defaults\n * @param factory - The Vuetifiable props factory function\n * @returns A clean object containing only the default values for public props that have defaults, guaranteed to be free of undefined values\n *\n * @example\n * ```typescript\n * const myPropsFactory = propsFactory({\n * title: { type: String, default: 'Hello World' },\n * items: { type: Array, default: () => [] },\n * settings: { type: Object, default: () => ({ theme: 'dark' }) },\n * count: { type: Number, default: 0 },\n * enabled: { type: Boolean }, // no default - will be excluded\n * internal: { type: String, default: 'secret', __internal: true } // private - will be excluded\n * }, 'MyComponent')\n *\n * const defaults = getDefaultsForPropFactory(myPropsFactory)\n * // Result: { title: 'Hello World', items: [], settings: { theme: 'dark' }, count: 0 }\n * // Note: 'enabled' and 'internal' are not included - no defaults or not public\n * ```\n */\nexport const getDefaultsForPropFactory = <\n T extends PropFactory = PropFactory,\n ExtractedPublicProperties = ExtractPublicDefaultPropTypes<T>,\n>(\n factory: T\n): ExtractedPublicProperties => {\n const ret: Partial<ExtractedPublicProperties> = {}\n const generated = factory()\n\n Object.entries(generated).forEach(([key, value]) => {\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n value !== null &&\n 'default' in value\n ) {\n // Handle reference type defaults that are functions (Object, Array, etc.)\n const isReferenceType =\n typeof value.type === 'function' && ['Object', 'Array'].includes(value.type.name)\n\n if (isReferenceType && typeof value.default === 'function') {\n ret[key as keyof ExtractedPublicProperties] = value.default()\n } else {\n // Handle primitive defaults or non-function reference defaults\n ret[key as keyof ExtractedPublicProperties] = (value as any).default\n }\n }\n // Props without defaults are simply omitted (no undefined assignment)\n })\n\n // Strip any undefined values that might have slipped through\n return stripUndefinedValuesFromObject(ret) as ExtractedPublicProperties\n}\n\n/**\n * Converts a value to an absolute integer, with fallback handling.\n * This utility is useful for sanitizing numeric inputs that should always be positive integers.\n *\n * @param value - The value to convert (number or string)\n * @param fallback - The fallback value to use if conversion fails (default: 0)\n * @returns An absolute integer value\n *\n * @example\n * ```typescript\n * asAbsInt(42) // 42\n * asAbsInt(-15) // 15\n * asAbsInt('10') // 10\n * asAbsInt('-5') // 5\n * asAbsInt('invalid') // 0 (fallback)\n * asAbsInt('abc', 10) // 10 (custom fallback)\n * asAbsInt(3.7) // 4 (rounded then made absolute)\n * ```\n */\nexport const asAbsInt = (value: number | string, fallback: number = 0): number => {\n const num = typeof value === 'number' ? value : Number.parseInt(value as string, 10)\n return Number.isNaN(num) ? Math.abs(Math.round(fallback)) : Math.abs(Math.round(num))\n}\n\n/**\n * Generates unique HTML element identifiers using high-quality encoding for collision resistance.\n * This function creates valid HTML IDs by combining a prefix with an encoded, sanitized suffix\n * derived from namespace, timestamp, and random data.\n *\n * The function ensures HTML ID validity by automatically fixing invalid prefixes and uses\n * a robust encoding system to generate high-quality pseudo-random suffixes with excellent\n * collision resistance properties.\n *\n * @param prefix - The prefix for the identifier. Will be prepended with 'p' if it doesn't start with a letter\n * @param namespace - A namespace string to include in the uniqueness calculation\n * @param unprefixedLength - Length of the encoded suffix (default: 8)\n * @param glue - Character(s) used to join prefix and suffix (default: '_')\n * @returns A valid HTML element ID guaranteed to start with a letter\n *\n * @example\n * ```typescript\n * makeIdentifier('btn', 'header') // 'btn_a8f9c2d1'\n * makeIdentifier('123nav', 'menu') // 'p123nav_b7e4f8a9' (prefix auto-fixed)\n * makeIdentifier('form', 'login', 12, '-') // 'form-c9d8e7f6a5b4'\n * makeIdentifier('', 'fallback') // 'p_d6c5b4a3'\n * ```\n */\nexport const makeIdentifier = (\n prefix: string,\n namespace: string,\n unprefixedLength: number = 8,\n glue: string = '_'\n) => {\n if (!prefix.match(/^[a-zA-Z]+$/)) {\n prefix = 'p' + prefix\n }\n const encoded = encode(`${prefix}:${namespace}:${new Date().getTime()}:${Math.random()}`)\n const unprefixed = encoded.replace(/[^a-zA-Z0-9]/g, '').slice(0, unprefixedLength)\n return [prefix, unprefixed].filter(Boolean).join(glue)\n}\n\nexport const getOxfordizedListParts = (items: string[]): { head: string; tail: string } => {\n if (items.length === 0) {\n return { head: '', tail: '' }\n } else if (items.length === 1) {\n return { head: items[0], tail: '' }\n } else if (items.length === 2) {\n return { head: items[0], tail: items[1] }\n } else {\n const head = items.slice(0, -1).join(', ')\n const tail = items[items.length - 1]\n return { head, tail }\n }\n}\n\n/**\n * Recursively converts reactive Vue values to plain JavaScript equivalents.\n * Removes all Vue reactivity (reactive, ref, computed) from nested data structures.\n * Handles objects, arrays, primitives, and any other value types safely.\n *\n * The function gracefully handles edge cases by using a try-catch block around Vue's\n * internal APIs. If `toRaw` or `toValue` throw an error (unlikely but possible), it\n * safely degrades to return the original value unchanged. Due to Vue's internal\n * architecture, the original value is very unlikely to contain reactivity in error cases.\n *\n * @template T - The type of the input value\n * @param value - A reactive value, ref, getter, or plain value to convert\n * @returns A completely plain (non-reactive) deep copy of the input, or the original value if conversion fails\n *\n * @example\n * ```typescript\n * const reactiveData = reactive({ user: { name: 'John' }, items: [1, 2, 3] })\n * const plainData = toUnreactive(reactiveData)\n * // Result: Plain object with no Vue reactivity\n *\n * const reactiveArray = reactive([1, 2, { nested: 'value' }])\n * const plainArray = toUnreactive(reactiveArray)\n * // Result: Plain array with plain objects\n *\n * const primitiveRef = ref(42)\n * const plainPrimitive = toUnreactive(primitiveRef)\n * // Result: 42 (plain number)\n * ```\n */\nexport const toUnreactive = <T = any>(value: MaybeRefOrGetter<T>): T => {\n if ('function' === typeof value) {\n // If the function name starts with \"on\", we need to just return it as-is\n // This will fix the bug where event handlers are called by `toValue` unintentionally\n if (value.name.startsWith('on')) {\n return value as unknown as T\n }\n }\n try {\n const stripped = toRaw(toValue(value))\n if (isObject(stripped)) {\n const keys = Object.keys(stripped) as Array<keyof T>\n return Object.assign({}, ...keys.map((k) => ({ [k]: toUnreactive(stripped[k]) }))) as T\n } else if (Array.isArray(stripped)) {\n return Array.from(stripped).map((item) => toUnreactive(item)) as any\n }\n return stripped\n } catch {\n return value as T\n }\n}\n\nexport const isNotEmpty = (value: MaybeRefOrGetter<any>): boolean => {\n const resolved = toUnreactive(value)\n return resolved !== null && resolved !== undefined && resolved !== ''\n}\n\nexport interface FocusProps {\n 'focused': boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\nexport const useFocus = (props: FocusProps, name = getCurrentInstanceName()) => {\n const isFocused = ref(props.focused)\n const focusClasses = toRef(() => {\n return {\n [`${name}--focused`]: isFocused.value,\n }\n })\n\n function focus() {\n isFocused.value = true\n }\n\n function blur() {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n\nexport const useSlot = <\n D extends Record<string, Slot> = Record<string, Slot>,\n N extends keyof D = keyof D,\n>(\n slot: N,\n slots: any\n): D[N] | undefined => {\n return slots[slot] as D[N] | undefined\n}\n\nconst extractTextFromVNode = (vnode: VNode): string => {\n // Handle text nodes\n if (typeof vnode.children === 'string') {\n return vnode.children\n }\n // Handle array of children (multiple VNodes)\n if (Array.isArray(vnode.children)) {\n return vnode.children\n .map((child) => {\n // If child is a string, return it\n if (typeof child === 'string') {\n return child\n }\n // If child is a VNode, recursively extract text\n if (child && typeof child === 'object') {\n return extractTextFromVNode(child as VNode)\n }\n return ''\n })\n .join('')\n }\n // Handle slots (if children is an object with slot functions)\n if (vnode.children && typeof vnode.children === 'object') {\n // For Vue 3, slots are stored as functions in the children object\n const slots = vnode.children as Record<string, any>\n // Try to get default slot content\n if (typeof slots.default === 'function') {\n const slotContent = slots.default()\n if (Array.isArray(slotContent)) {\n return slotContent\n .map((child) => {\n if (typeof child === 'string') {\n return child\n }\n if (child && typeof child === 'object') {\n return extractTextFromVNode(child)\n }\n return ''\n })\n .join('')\n }\n }\n }\n // If no text content found, return empty string\n return ''\n}\n\n/**\n * Converts a string or VNode to a plain string representation.\n * This utility is essential for handling mixed content types where both plain text\n * and rich VNode content need to be converted to string format for contexts that\n * only accept text (like HTML attributes, tooltips, accessibility labels, etc.).\n *\n * The function provides a safe and comprehensive way to extract meaningful text\n * content from Vue's VNode structures while maintaining backwards compatibility\n * with simple string inputs.\n *\n * @param input - Either a plain string or a Vue VNode to convert\n * @returns A plain string representation of the input content\n *\n * @example\n * ```typescript\n * // String input - returned as-is\n * getStringOrVNodeAsString('Hello World') // 'Hello World'\n *\n * // VNode with text content\n * const textNode = h('span', 'Hello VNode')\n * getStringOrVNodeAsString(textNode) // 'Hello VNode'\n *\n * // Complex VNode with nested content\n * const complexNode = h('div', [\n * h('span', 'Name: '),\n * h('strong', 'John Doe'),\n * h('span', ' (Admin)')\n * ])\n * getStringOrVNodeAsString(complexNode) // 'Name: John Doe (Admin)'\n *\n * // Usage in component context for title attributes\n * const result = props.stringifier(item) // Could be string or VNode\n * h('span', {\n * title: getStringOrVNodeAsString(result) // Always string for HTML attribute\n * }, result) // Rich content rendered here\n * ```\n */\nexport const getStringOrVNodeAsString = (input: string | VNode): string => {\n if (typeof input === 'string') {\n return input\n }\n if (input && typeof input === 'object') {\n return extractTextFromVNode(input)\n }\n return ''\n}\n\n/**\n * Merges CSS classes from multiple sources into a single array suitable for Vue's class binding.\n * This utility is designed for component development where you need to combine built-in component\n * classes with user-provided class additions (not overrides) while maintaining Vue's flexible\n * class binding format.\n *\n * The function preserves the exact structure expected by Vue's class binding system and handles\n * deep flattening of nested arrays while maintaining object references for conditional classes.\n * All input formats are normalized into a consistent output format that Vue can process efficiently.\n *\n * @param original - The base classes (typically from component internals)\n * @param additional - User-provided classes to add to the base classes\n * @param more - Additional class sources to merge (supports unlimited arguments)\n * @returns A flattened array of strings and conditional class objects ready for Vue's class binding\n *\n * @example\n * ```typescript\n * // Component usage - merging internal classes with user classes\n * const componentClasses = ['btn', 'btn-primary']\n * const userClasses = 'btn-large'\n * const conditionalClasses = { 'btn-disabled': isDisabled }\n *\n * const finalClasses = mergeClasses(componentClasses, userClasses, conditionalClasses)\n * // Result: ['btn', 'btn-primary', 'btn-large', { 'btn-disabled': true }]\n *\n * // In Vue component template\n * h('button', { class: mergeClasses(baseClasses, props.class) })\n *\n * // Complex nested structure flattening\n * const nestedClasses = [\n * 'base',\n * ['nested-1', { 'conditional-1': true }],\n * [['deeply-nested', 'another'], { 'conditional-2': false }]\n * ]\n * const flattened = mergeClasses(nestedClasses)\n * // Result: ['base', 'nested-1', { 'conditional-1': true }, 'deeply-nested', 'another', { 'conditional-2': false }]\n * ```\n */\nexport const mergeClasses = (\n original: string | undefined | Array<string | { [key: string]: boolean }>,\n additional: string | undefined | Array<string | { [key: string]: boolean }>,\n ...more: Array<string | undefined | Array<string | { [key: string]: boolean }>>\n): Array<string | { [key: string]: boolean }> => {\n const ret: Array<string | { [key: string]: boolean }> = []\n const handleEntry = (\n entry:\n | string\n | undefined\n | { [key: string]: boolean }\n | Array<string | { [key: string]: boolean }>\n ) => {\n if ('string' === typeof entry) {\n ret.push(entry)\n } else if ('object' === typeof entry && !Array.isArray(entry) && null !== entry) {\n ret.push(entry)\n } else if (Array.isArray(entry)) {\n entry.forEach((e) => handleEntry(e))\n }\n }\n handleEntry(original)\n handleEntry(additional)\n more.forEach((e) => handleEntry(e))\n return ret\n}\n\nexport function toKebabCase(str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map<string, string>()\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\nexport type EventProp<T extends any[] = any[], F = (...args: T) => void> = F\nexport const EventProp = <T extends any[] = any[]>() => [Function, Array] as PropType<EventProp<T>>\n\nexport const useProxiedModel = <\n Props extends object & {\n [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined\n },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n>(\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v\n) => {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) ||\n vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(\n vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`)\n )\n })\n const model = computed({\n get(): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set(internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => (isControlled.value ? props[prop] : internal.value),\n })\n\n return model\n}\n\nexport const ResourcefulFieldType = [\n 'string',\n 'date',\n 'dateTime',\n 'binary',\n 'number',\n 'integer',\n 'bigint',\n 'unsignedInteger',\n 'boolean',\n] as const\nexport type ResourcefulFieldType = (typeof ResourcefulFieldType)[number]\n\nexport const typeAndFormatToResourcefulFieldType = (\n type: string,\n format: string | undefined\n): ResourcefulFieldType => {\n // types will be from one of the primitive types found here:\n // https://spec.openapis.org/oas/v3.0.0.html#dataTypeFormat\n switch (type) {\n case 'boolean':\n return 'boolean' as const\n case 'integer': {\n switch (format) {\n case 'int32':\n return 'integer' as const\n case 'int64':\n return 'bigint' as const\n default:\n return 'unsignedInteger' as const\n }\n }\n case 'string': {\n switch (format) {\n case 'date':\n return 'date' as const\n case 'date-time':\n return 'dateTime' as const\n case 'binary':\n return 'binary' as const\n default:\n return 'string' as const\n }\n }\n case 'number':\n return 'number' as const\n default:\n return 'string' as const\n }\n}\n\n/**\n * Options for {@link usePassthroughHook} that control when and how a fallback is executed\n * and how the produced handler is scheduled.\n *\n * The passthrough hook builds an invoker for a given event that respects component props\n * (onX prop handlers), attribute listeners, and optional \"callOnX\" hook arrays before\n * falling back to your own handler. These options allow you to customize that behavior.\n *\n * @typeParam P - Tuple of the event argument types\n * @property fallback Optional function called when there are no bound handlers and no\n * registered call-on hooks for the event. Receives the original\n * event arguments. May be async.\n * @property debounceMs If set (> 0), the produced handler will be debounced by the given\n * milliseconds.\n * @property throttleMs If set (> 0), the produced handler will be throttled by the given\n * milliseconds.\n * @property immediate Controls when the produced handler runs when neither debounce nor\n * throttle is used:\n * - undefined (default): run on the next Vue tick (nextTick)\n * - false: run synchronously in the current tick\n * - true: run as a microtask (queueMicrotask)\n */\nexport type UsePassthroughHookOptions<P extends any[]> = {\n fallback?: (...args: P) => void | Promise<void>\n debounceMs?: number\n throttleMs?: number\n immediate?: boolean\n}\n\n/**\n * Builds an event invoker that respects component-bound handlers and hook arrays\n * before calling a fallback.\n *\n * This composable makes it easy to implement events that can be handled via:\n * - Prop/attribute handlers (onEventName in camelCase or kebab-case)\n * - Optional \"callOnEventName\" hook arrays defined on component props\n * - A provided fallback function when nothing else is registered\n *\n * The returned function mirrors the event's argument signature. You can also\n * debounce or throttle the produced handler, and control its scheduling\n * (microtask, next tick, or immediate) via {@link UsePassthroughHookOptions}.\n *\n * Event name lookup supports both camel and kebab notations for handlers, e.g.:\n * - update:modelValue → onUpdateModelValue (camel) and onUpdate:modelValue (kebab)\n * - item:selected → onItemSelected (camel) and onItem:selected (kebab)\n *\n * @typeParam Props - Component props type including potential onX handlers and callOnX arrays\n * @typeParam Events - Map of event names to their function signatures\n * @typeParam E - Concrete event name (key of Events)\n * @typeParam P - Tuple of the event argument types (derived from Events[E])\n * @param event Event name (e.g., 'update:modelValue')\n * @param emit Vue emit function used when a handler is present\n * @param callOnKey Name of the prop key that may contain hook array(s), like 'callOnSaving'\n * @param props Component props object (checked for onX handlers and callOn arrays)\n * @param attrs Component attrs object (checked for onX handlers passed via attributes)\n * @param options Behavior controls for fallback and scheduling\n * @returns A function with signature (...args: P) => Promise\\<void\\> | void to invoke the event\n */\nexport const usePassthroughHook = <\n Props extends {\n [key: string]: (...args: any[]) => any\n },\n Events extends {\n [key: string]: (...args: any[]) => any\n },\n E extends Extract<keyof Events, string>,\n P extends any[] = Parameters<Events[E]>,\n>(\n event: E,\n emit: (...args: any[]) => void,\n callOnKey: Extract<keyof Props, `callOn${string}`> | undefined | null,\n props: Props,\n attrs: Record<string, unknown>,\n options: UsePassthroughHookOptions<P> = {}\n) => {\n if (\n 'number' === typeof options.debounceMs &&\n 'number' === typeof options.throttleMs &&\n options.debounceMs > 0 &&\n options.throttleMs > 0\n ) {\n warn('usePassthroughHook: debounceMs and throttleMs are both set.')\n }\n const { camel, kebab } = getCamelAndMaybeKebabPropKeysFor(event) as {\n camel: any\n kebab: any\n }\n const doHook = async (...args: P) => {\n // if the `on${event}` props are set to functions, emit as normal\n if (\n 'function' === typeof props[camel] ||\n 'function' === typeof props[kebab] ||\n 'function' === typeof attrs[camel] ||\n 'function' === typeof attrs[kebab]\n ) {\n emit(event, ...args)\n return\n }\n // if there are `callOn${event}` hooks, do not run the fallback\n if ('string' !== typeof callOnKey || !(callOnKey in props)) return\n const callOns = props[callOnKey] as any\n if (Array.isArray(callOns) && callOns.length > 0) {\n return\n }\n const fallback = options.fallback ?? (() => {})\n await fallback(...args)\n }\n let callHook = doHook\n if ('number' === typeof options.debounceMs && options.debounceMs > 0) {\n callHook = debounce(callHook, options.debounceMs) as unknown as typeof doHook\n }\n if ('number' === typeof options.throttleMs && options.throttleMs > 0) {\n callHook = throttle(callHook, options.throttleMs) as unknown as typeof doHook\n }\n switch (true) {\n case 'undefined' === typeof options.immediate:\n callHook = async (...args: P) => {\n await nextTick()\n return await doHook(...args)\n }\n break\n\n case options.immediate:\n callHook = async (...args: P) => {\n return await new Promise<void>((rslv) => {\n queueMicrotask(() => doHook(...args).then(rslv))\n })\n }\n break\n }\n return callHook\n}\n"],"names":["isObject","value","magicSplit","spaceSplit","getPartsAndIndexes","string","splitRegex","result","matches","lastWordEndIndex","match","word","prefix","tail","splitAndPrefix","options","keepSpecialCharacters","keep","normalString","hasSpaces","partsAndIndexes","_part","i","foundPrefix","part","capitaliseWord","firstLetterIndex","camelCase","index","kebabCase","propsFactory","props","source","defaults","obj","prop","definition","emitsFactory","validators","getCamelAndMaybeKebabPropKeysFor","key","camelPropKey","p","maybeKebabPropKey","propsAndEmitsFactory","emits","makeEmits","propsAndDefaultsFactory","factory","getDefaultsForPropFactory","getDefaultExportFromCjs","x","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","len","args","Item","array","noop","name","dir","browserExports","process$1","makeMap","str","map2","val","EMPTY_OBJ","NOOP","isOn","extend","remove","arr","el","hasOwnProperty$1","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isPromise","objectToString","toRawType","isPlainObject","isIntegerKey","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","capitalize","toHandlerKey","hasChanged","oldValue","toNumber","n","_globalThis","getGlobalThis","global","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","isRef$1","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","warn$2","msg","activeEffectScope","EffectScope","detached","l","currentEffectScope","fromParent","last","effectScope","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","prev","removeDep","refreshComputed","computed2","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","raw","toRaw","isShallow","toReactive","shallowReadArray","arrayInstrumentations","iterator","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self2","method","wrapValue","iter","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","acc","isProxy","isNonTrackableKeys","builtInSymbols","hasOwnProperty","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","isRef","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","toReadonly","done","createReadonlyMethod","createInstrumentations","readonly2","shallow","instrumentations","rawKey","has","callback","observed","get","checkIdentityKeys","hadItems","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","targetType","existingProxy","proxy","isReactive","r","ref","createRef","shallowRef","rawValue","RefImpl","useDirectValue","unref","ref2","toValue","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","newVal","GetterRefImpl","_getter","toRef","defaultValue","ComputedRefImpl","setter","isSSR","computed$1","getterOrOptions","debugOptions","getter","cRef","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch$1","cb","immediate","deep","once","scheduler","augmentJob","call","warnInvalidSource","s","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","stack","pushWarningContext","vnode","popWarningContext","isWarning","warn$1","instance","appWarnHandler","trace","getComponentTrace","callWithErrorHandling","a","_b","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","parentInstance","logs","entry","formatTraceEntry","recurseCount","postfix","isRoot","open","close","formatProps","keys","formatProp","assertNumber","ErrorTypeStrings$1","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","info","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","RECURSION_LIMIT","nextTick","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPostFlushCbs","deduped","b","checkRecursiveUpdates","check","count","componentName","getComponentName","isHmrUpdating","hmrDirtyComponents","tryWrap","createRecord","rerender","reload","map","initialDef","normalizeClassComponent","component","isClassComponent","newRender","record","newComp","updateComponentDef","instances","oldComp","dirtyInstances","arg","devtools$1","buffer","setDevtoolsHook$1","hook","event","newHook","currentRenderingInstance","currentScopeId","withDirectives","directives","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","mountToTarget","targetAnchor","prepareAnchor","updateCssVars","queuePostRenderEffect","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","targetNode","Teleport","isDisabled","ctx","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getCurrentInstance","getTransitionRawChildren","findNonCommentChild","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","hasFound","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook2","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","remove2","vnode2","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","useId","onDeactivated","registerKeepAliveHook","currentInstance","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","reset","setCurrentInstance","apiName","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","COMPONENTS","DIRECTIVES","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveAsset","resolveDirective","warnMissing","maybeSelfReference","Component","selfName","resolve","extra","registry","currentApp","provide","provides","parentProvides","inject","treatDefaultAsFactory","internalObjectProto","isInternalObject","queueEffectWithSuspense","ch1","ch2","c1","c2","cloneIfMounted","Text","ssrContextKey","useSSRContext","watchEffect","effect2","doWatch","watch","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","isSuspense","suspense","isVNode","createVNodeWithArgsTransform","_createVNode","normalizeKey","normalizeRef","ref3","ref_key","ref_for","createBaseVNode","patchFlag","dynamicProps","isBlockNode","needFullChildrenNormalization","normalizeChildren","createVNode","cloned","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","transition","mergedProps","mergeProps","deepCloneVNode","createTextVNode","text","flag","slot","toMerge","existing","incoming","internalSetCurrentInstance","g","registerGlobalSetter","setters","set","classifyRE","classify","includeInferred","inferFromRegistry","computed","h","propsOrChildren","initCustomFormatter","vueStyle","numberStyle","stringStyle","keywordStyle","formatter","genRefFlag","formatValue","formatInstance","blocks","createInstanceBlock","extractKeys","asRaw","Comp","extracted","isKeyOfType","opts","m","warn","initDev","__typeError","__accessCheck","member","__privateGet","__privateAdd","__privateSet","_arr","_pointer","getNestedValue","path","fallback","deepEqual","getObjectValueByPath","getPropertyFromItem","property","value2","createRange","length","k","convertToUnit","unit","num","proto","refElement","keyValues","pick","paths","found","pickWithRest","exclude","rest","omit","clone","onRE","bubblingEvents","compositionIgnoreKeys","isComposingIgnoreKey","filterInputAttrs","attrs","events","inputEvents","rootAttrs","inputAttrs","wrapInArray","debounce","delay","timeoutId","throttle","limit","throttling","clamp","min","max","padEnd","char","chunk","size","chunked","mergeDeep","arrayFn","out","sourceProperty","targetProperty","flattenFragments","nodes","toKebabCase","kebab","findChildrenWithProvide","CircularBuffer","destructComputed","refs","base","includes","eventName","propName","EventProp","hasEvent","callEvent","handler","focusableChildren","filterByTabIndex","targets","getNextElement","elements","location","condition","_el","idx","inc","focusChild","_c","_d","focusable","isEmpty","matchesSelector","selector","IN_BROWSER","ensureValidVNode","vnodes","defer","isClickInsideElement","targetDiv","mouseX","mouseY","divRect","divLeft","divTop","divRight","divBottom","templateRef","checkPrintable","isPrintableChar","noModifier","isPrimitive","escapeForRegex","sign","camelizeProps","onlyDefinedProps","booleanAttributes","message","vm","getCurrentInstance$1","getCurrentInstanceName","stripUndefinedValuesFromObject","generated","asAbsInt","makeIdentifier","unprefixedLength","glue","unprefixed","encode","getOxfordizedListParts","items","toUnreactive","stripped","isNotEmpty","resolved","useFocus","isFocused","focusClasses","focus","blur","useSlot","extractTextFromVNode","slotContent","getStringOrVNodeAsString","input","mergeClasses","original","additional","more","handleEntry","useProxiedModel","transformIn","transformOut","internal","kebabProp","isControlled","model","externalValue","internalValue","ResourcefulFieldType","typeAndFormatToResourcefulFieldType","format","usePassthroughHook","emit","callOnKey","camel","doHook","callOns","callHook","rslv"],"mappings":"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","x_google_ignoreList":[1,2,3,5,6,7,8]}
|