{"version":3,"names":["FORMATTER_CACHE","Map","getFormatter","locale","options","key","JSON","stringify","cached","get","formatter","Intl","NumberFormat","set","HAN_NUMERALS","HAN_NUMERAL_TO_DIGIT","零","〇","一","二","三","四","五","六","七","八","九","ARABIC_NUMERALS","PERSIAN_NUMERALS","FULLWIDTH_NUMERALS","PERCENTAGES","PERMILLE","UNICODE_MINUS_SIGNS","UNICODE_PLUS_SIGNS","FULLWIDTH_DECIMAL","FULLWIDTH_GROUP","ARABIC_RE","RegExp","join","PERSIAN_RE","FULLWIDTH_RE","HAN_RE","PERCENT_RE","PERMILLE_RE","ARABIC_DETECT_RE","PERSIAN_DETECT_RE","HAN_DETECT_RE","FULLWIDTH_DETECT_RE","BASE_NON_NUMERIC_SYMBOLS","SPACE_SEPARATOR_RE","PLUS_SIGNS_WITH_ASCII","MINUS_SIGNS_WITH_ASCII","escapeRegExp","s","replace","escapeClassChar","m","charClassFrom","chars","map","ANY_MINUS_CLASS","ANY_PLUS_CLASS","ANY_MINUS_RE","ANY_PLUS_RE","ANY_MINUS_DETECT_RE","ANY_PLUS_DETECT_RE","getNumberLocaleDetails","parts","formatToParts","result","part","type","value","parseNumber","formattedNumber","input","String","trim","isNegative","trailing","match","leading","computedLocale","undefined","test","group","decimal","currency","unitParts","filter","p","unitRegex","length","groupRegex","isSpaceGroup","isApostropheGroup","replacements","regex","replacement","ch","indexOf","unformatted","reduce","acc","lastDot","lastIndexOf","slice","parseTarget","num","Number","parseFloat","style","isUnitPercent","unit","hasPercentSymbol","hasPermilleSymbol","isNaN"],"sources":["parse.ts"],"sourcesContent":["/**\n * Ported from\n * `packages/react/src/number-field/utils/parse.ts`. Locale-aware numeric\n * parsing for every numeral system / decimal-group separator / currency /\n * unit combination `Intl.NumberFormat` can produce.\n *\n * Pure helpers — no Solid reactivity. Safe to call in render and event\n * handlers alike.\n */\n\nconst FORMATTER_CACHE = new Map<string, Intl.NumberFormat>();\n\nfunction getFormatter(\n\tlocale?: Intl.LocalesArgument,\n\toptions?: Intl.NumberFormatOptions,\n): Intl.NumberFormat {\n\tconst key = JSON.stringify({ locale, options });\n\tconst cached = FORMATTER_CACHE.get(key);\n\tif (cached) return cached;\n\tconst formatter = new Intl.NumberFormat(locale, options);\n\tFORMATTER_CACHE.set(key, formatter);\n\treturn formatter;\n}\n\nconst HAN_NUMERALS = [\n\t\"零\",\n\t\"〇\",\n\t\"一\",\n\t\"二\",\n\t\"三\",\n\t\"四\",\n\t\"五\",\n\t\"六\",\n\t\"七\",\n\t\"八\",\n\t\"九\",\n];\nconst HAN_NUMERAL_TO_DIGIT: Record<string, string> = {\n\t零: \"0\",\n\t〇: \"0\",\n\t一: \"1\",\n\t二: \"2\",\n\t三: \"3\",\n\t四: \"4\",\n\t五: \"5\",\n\t六: \"6\",\n\t七: \"7\",\n\t八: \"8\",\n\t九: \"9\",\n};\nconst ARABIC_NUMERALS = [\"٠\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"];\nconst PERSIAN_NUMERALS = [\"۰\", \"۱\", \"۲\", \"۳\", \"۴\", \"۵\", \"۶\", \"۷\", \"۸\", \"۹\"];\nconst FULLWIDTH_NUMERALS = [\n\t\"０\",\n\t\"１\",\n\t\"２\",\n\t\"３\",\n\t\"４\",\n\t\"５\",\n\t\"６\",\n\t\"７\",\n\t\"８\",\n\t\"９\",\n];\n\nexport const PERCENTAGES = [\"%\", \"٪\", \"％\", \"﹪\"];\nexport const PERMILLE = [\"‰\", \"؉\"];\n\nconst UNICODE_MINUS_SIGNS = [\"−\", \"－\", \"‒\", \"–\", \"—\", \"﹣\"];\nconst UNICODE_PLUS_SIGNS = [\"＋\", \"﹢\"];\n\nconst FULLWIDTH_DECIMAL = \"．\";\nconst FULLWIDTH_GROUP = \"，\";\n\nconst ARABIC_RE = new RegExp(`[${ARABIC_NUMERALS.join(\"\")}]`, \"g\");\nconst PERSIAN_RE = new RegExp(`[${PERSIAN_NUMERALS.join(\"\")}]`, \"g\");\nconst FULLWIDTH_RE = new RegExp(`[${FULLWIDTH_NUMERALS.join(\"\")}]`, \"g\");\nconst HAN_RE = new RegExp(`[${HAN_NUMERALS.join(\"\")}]`, \"g\");\nconst PERCENT_RE = new RegExp(`[${PERCENTAGES.join(\"\")}]`);\nconst PERMILLE_RE = new RegExp(`[${PERMILLE.join(\"\")}]`);\n\nexport const ARABIC_DETECT_RE = /[٠١٢٣٤٥٦٧٨٩]/;\nexport const PERSIAN_DETECT_RE = /[۰۱۲۳۴۵۶۷۸۹]/;\nexport const HAN_DETECT_RE = /[零〇一二三四五六七八九]/;\nexport const FULLWIDTH_DETECT_RE = new RegExp(\n\t`[${FULLWIDTH_NUMERALS.join(\"\")}]`,\n);\n\nexport const BASE_NON_NUMERIC_SYMBOLS = [\n\t\".\",\n\t\",\",\n\tFULLWIDTH_DECIMAL,\n\tFULLWIDTH_GROUP,\n\t\"٫\",\n\t\"٬\",\n] as const;\nexport const SPACE_SEPARATOR_RE = /\\p{Zs}/u;\nexport const PLUS_SIGNS_WITH_ASCII = [\"+\", ...UNICODE_PLUS_SIGNS];\nexport const MINUS_SIGNS_WITH_ASCII = [\"-\", ...UNICODE_MINUS_SIGNS];\n\nconst escapeRegExp = (s: string): string =>\n\ts.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\nconst escapeClassChar = (s: string): string =>\n\ts.replace(/[-\\\\\\]^]/g, (m) => `\\\\${m}`);\n\nconst charClassFrom = (chars: string[]): string =>\n\t`[${chars.map(escapeClassChar).join(\"\")}]`;\n\nconst ANY_MINUS_CLASS = charClassFrom([\"-\", ...UNICODE_MINUS_SIGNS]);\nconst ANY_PLUS_CLASS = charClassFrom([\"+\", ...UNICODE_PLUS_SIGNS]);\n\nexport const ANY_MINUS_RE = new RegExp(ANY_MINUS_CLASS, \"gu\");\nexport const ANY_PLUS_RE = new RegExp(ANY_PLUS_CLASS, \"gu\");\nexport const ANY_MINUS_DETECT_RE = new RegExp(ANY_MINUS_CLASS);\nexport const ANY_PLUS_DETECT_RE = new RegExp(ANY_PLUS_CLASS);\n\nexport function getNumberLocaleDetails(\n\tlocale?: Intl.LocalesArgument,\n\toptions?: Intl.NumberFormatOptions,\n): Partial<Record<Intl.NumberFormatPartTypes, string | undefined>> {\n\tconst parts = getFormatter(locale, options).formatToParts(11111.1);\n\tconst result: Partial<\n\t\tRecord<Intl.NumberFormatPartTypes, string | undefined>\n\t> = {};\n\n\tfor (const part of parts) {\n\t\tresult[part.type] = part.value;\n\t}\n\n\t// The formatting options may result in not returning a decimal.\n\tfor (const part of getFormatter(locale).formatToParts(0.1)) {\n\t\tif (part.type === \"decimal\") {\n\t\t\tresult[part.type] = part.value;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function parseNumber(\n\tformattedNumber: string,\n\tlocale?: Intl.LocalesArgument,\n\toptions?: Intl.NumberFormatOptions,\n): number | null {\n\tif (formattedNumber == null) {\n\t\treturn null;\n\t}\n\n\tlet input = String(formattedNumber)\n\t\t.replace(/\\p{Cf}/gu, \"\")\n\t\t.trim();\n\tinput = input.replace(ANY_MINUS_RE, \"-\").replace(ANY_PLUS_RE, \"+\");\n\n\tlet isNegative = false;\n\n\tconst trailing = input.match(/([+-])\\s*$/);\n\tif (trailing) {\n\t\tif (trailing[1] === \"-\") {\n\t\t\tisNegative = true;\n\t\t}\n\t\tinput = input.replace(/([+-])\\s*$/, \"\");\n\t}\n\tconst leading = input.match(/^\\s*([+-])/);\n\tif (leading) {\n\t\tif (leading[1] === \"-\") {\n\t\t\tisNegative = true;\n\t\t}\n\t\tinput = input.replace(/^\\s*[+-]/, \"\");\n\t}\n\n\tlet computedLocale = locale;\n\tif (computedLocale === undefined) {\n\t\tif (ARABIC_DETECT_RE.test(input) || PERSIAN_DETECT_RE.test(input)) {\n\t\t\tcomputedLocale = \"ar\";\n\t\t} else if (HAN_DETECT_RE.test(input)) {\n\t\t\tcomputedLocale = \"zh\";\n\t\t}\n\t}\n\n\tconst { group, decimal, currency } = getNumberLocaleDetails(\n\t\tcomputedLocale,\n\t\toptions,\n\t);\n\n\tconst unitParts = getFormatter(computedLocale, options)\n\t\t.formatToParts(1)\n\t\t.filter((p) => p.type === \"unit\")\n\t\t.map((p) => escapeRegExp(p.value));\n\tconst unitRegex = unitParts.length\n\t\t? new RegExp(unitParts.join(\"|\"), \"g\")\n\t\t: null;\n\n\tlet groupRegex: RegExp | null = null;\n\tif (group) {\n\t\tconst isSpaceGroup = /\\p{Zs}/u.test(group);\n\t\tconst isApostropheGroup = group === \"'\" || group === \"\\u2019\";\n\n\t\tif (isSpaceGroup) {\n\t\t\tgroupRegex = /\\p{Zs}/gu;\n\t\t} else if (isApostropheGroup) {\n\t\t\tgroupRegex = /['\\u2019]/g;\n\t\t} else {\n\t\t\tgroupRegex = new RegExp(escapeRegExp(group), \"g\");\n\t\t}\n\t}\n\n\tconst replacements: Array<{\n\t\tregex: RegExp | null;\n\t\treplacement: string | ((m: string) => string);\n\t}> = [\n\t\t{ regex: group ? groupRegex : null, replacement: \"\" },\n\t\t{\n\t\t\tregex: decimal ? new RegExp(escapeRegExp(decimal), \"g\") : null,\n\t\t\treplacement: \".\",\n\t\t},\n\t\t{ regex: /．/g, replacement: \".\" },\n\t\t{ regex: /，/g, replacement: \"\" },\n\t\t{ regex: /٫/g, replacement: \".\" },\n\t\t{ regex: /٬/g, replacement: \"\" },\n\t\t{\n\t\t\tregex: currency ? new RegExp(escapeRegExp(currency), \"g\") : null,\n\t\t\treplacement: \"\",\n\t\t},\n\t\t{ regex: unitRegex, replacement: \"\" },\n\t\t{\n\t\t\tregex: ARABIC_RE,\n\t\t\treplacement: (ch) => String(ARABIC_NUMERALS.indexOf(ch)),\n\t\t},\n\t\t{\n\t\t\tregex: PERSIAN_RE,\n\t\t\treplacement: (ch) => String(PERSIAN_NUMERALS.indexOf(ch)),\n\t\t},\n\t\t{\n\t\t\tregex: FULLWIDTH_RE,\n\t\t\treplacement: (ch) => String(FULLWIDTH_NUMERALS.indexOf(ch)),\n\t\t},\n\t\t{ regex: HAN_RE, replacement: (ch) => HAN_NUMERAL_TO_DIGIT[ch] ?? ch },\n\t];\n\n\tlet unformatted = replacements.reduce((acc, { regex, replacement }) => {\n\t\treturn regex\n\t\t\t? acc.replace(regex, replacement as (m: string) => string)\n\t\t\t: acc;\n\t}, input);\n\n\tconst lastDot = unformatted.lastIndexOf(\".\");\n\tif (lastDot !== -1) {\n\t\tunformatted = `${unformatted.slice(0, lastDot).replace(/\\./g, \"\")}.${unformatted.slice(lastDot + 1).replace(/\\./g, \"\")}`;\n\t}\n\n\tif (/^[-+]?Infinity$/i.test(input) || /[∞]/.test(input)) {\n\t\treturn null;\n\t}\n\n\tconst parseTarget = (isNegative ? \"-\" : \"\") + unformatted;\n\n\tlet num = Number.parseFloat(parseTarget);\n\n\tconst style = options?.style;\n\tconst isUnitPercent = style === \"unit\" && options?.unit === \"percent\";\n\tconst hasPercentSymbol =\n\t\tPERCENT_RE.test(formattedNumber) || style === \"percent\";\n\tconst hasPermilleSymbol = PERMILLE_RE.test(formattedNumber);\n\n\tif (hasPermilleSymbol) {\n\t\tnum /= 1000;\n\t} else if (!isUnitPercent && hasPercentSymbol) {\n\t\tnum /= 100;\n\t}\n\n\tif (Number.isNaN(num)) {\n\t\treturn null;\n\t}\n\n\treturn num;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,eAAe,GAAG,IAAIC,GAAG,CAA4B,CAAC;AAE5D,SAASC,YAAYA,CACpBC,MAA6B,EAC7BC,OAAkC,EACd;EACpB,MAAMC,GAAG,GAAGC,IAAI,CAACC,SAAS,CAAC;IAAEJ,MAAM;IAAEC;EAAQ,CAAC,CAAC;EAC/C,MAAMI,MAAM,GAAGR,eAAe,CAACS,GAAG,CAACJ,GAAG,CAAC;EACvC,IAAIG,MAAM,EAAE,OAAOA,MAAM;EACzB,MAAME,SAAS,GAAG,IAAIC,IAAI,CAACC,YAAY,CAACT,MAAM,EAAEC,OAAO,CAAC;EACxDJ,eAAe,CAACa,GAAG,CAACR,GAAG,EAAEK,SAAS,CAAC;EACnC,OAAOA,SAAS;AACjB;AAEA,MAAMI,YAAY,GAAG,CACpB,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACH;AACD,MAAMC,oBAA4C,GAAG;EACpDC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE;AACJ,CAAC;AACD,MAAMC,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1E,MAAMC,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3E,MAAMC,kBAAkB,GAAG,CAC1B,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACH;AAED,OAAO,MAAMC,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/C,OAAO,MAAMC,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAElC,MAAMC,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1D,MAAMC,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAErC,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,eAAe,GAAG,GAAG;AAE3B,MAAMC,SAAS,GAAG,IAAIC,MAAM,CAAC,IAAIV,eAAe,CAACW,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAClE,MAAMC,UAAU,GAAG,IAAIF,MAAM,CAAC,IAAIT,gBAAgB,CAACU,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACpE,MAAME,YAAY,GAAG,IAAIH,MAAM,CAAC,IAAIR,kBAAkB,CAACS,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACxE,MAAMG,MAAM,GAAG,IAAIJ,MAAM,CAAC,IAAIvB,YAAY,CAACwB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC5D,MAAMI,UAAU,GAAG,IAAIL,MAAM,CAAC,IAAIP,WAAW,CAACQ,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;AAC1D,MAAMK,WAAW,GAAG,IAAIN,MAAM,CAAC,IAAIN,QAAQ,CAACO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;AAExD,OAAO,MAAMM,gBAAgB,GAAG,cAAc;AAC9C,OAAO,MAAMC,iBAAiB,GAAG,cAAc;AAC/C,OAAO,MAAMC,aAAa,GAAG,eAAe;AAC5C,OAAO,MAAMC,mBAAmB,GAAG,IAAIV,MAAM,CAC5C,IAAIR,kBAAkB,CAACS,IAAI,CAAC,EAAE,CAAC,GAChC,CAAC;AAED,OAAO,MAAMU,wBAAwB,GAAG,CACvC,GAAG,EACH,GAAG,EACHd,iBAAiB,EACjBC,eAAe,EACf,GAAG,EACH,GAAG,CACM;AACV,OAAO,MAAMc,kBAAkB,GAAG,SAAS;AAC3C,OAAO,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAGjB,kBAAkB,CAAC;AACjE,OAAO,MAAMkB,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAGnB,mBAAmB,CAAC;AAEnE,MAAMoB,YAAY,GAAIC,CAAS,IAC9BA,CAAC,CAACC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACzC,MAAMC,eAAe,GAAIF,CAAS,IACjCA,CAAC,CAACC,OAAO,CAAC,WAAW,EAAGE,CAAC,IAAK,KAAKA,CAAC,EAAE,CAAC;AAExC,MAAMC,aAAa,GAAIC,KAAe,IACrC,IAAIA,KAAK,CAACC,GAAG,CAACJ,eAAe,CAAC,CAACjB,IAAI,CAAC,EAAE,CAAC,GAAG;AAE3C,MAAMsB,eAAe,GAAGH,aAAa,CAAC,CAAC,GAAG,EAAE,GAAGzB,mBAAmB,CAAC,CAAC;AACpE,MAAM6B,cAAc,GAAGJ,aAAa,CAAC,CAAC,GAAG,EAAE,GAAGxB,kBAAkB,CAAC,CAAC;AAElE,OAAO,MAAM6B,YAAY,GAAG,IAAIzB,MAAM,CAACuB,eAAe,EAAE,IAAI,CAAC;AAC7D,OAAO,MAAMG,WAAW,GAAG,IAAI1B,MAAM,CAACwB,cAAc,EAAE,IAAI,CAAC;AAC3D,OAAO,MAAMG,mBAAmB,GAAG,IAAI3B,MAAM,CAACuB,eAAe,CAAC;AAC9D,OAAO,MAAMK,kBAAkB,GAAG,IAAI5B,MAAM,CAACwB,cAAc,CAAC;AAE5D,OAAO,SAASK,sBAAsBA,CACrC/D,MAA6B,EAC7BC,OAAkC,EACgC;EAClE,MAAM+D,KAAK,GAAGjE,YAAY,CAACC,MAAM,EAAEC,OAAO,CAAC,CAACgE,aAAa,CAAC,OAAO,CAAC;EAClE,MAAMC,MAEL,GAAG,CAAC,CAAC;EAEN,KAAK,MAAMC,IAAI,IAAIH,KAAK,EAAE;IACzBE,MAAM,CAACC,IAAI,CAACC,IAAI,CAAC,GAAGD,IAAI,CAACE,KAAK;EAC/B;;EAEA;EACA,KAAK,MAAMF,IAAI,IAAIpE,YAAY,CAACC,MAAM,CAAC,CAACiE,aAAa,CAAC,GAAG,CAAC,EAAE;IAC3D,IAAIE,IAAI,CAACC,IAAI,KAAK,SAAS,EAAE;MAC5BF,MAAM,CAACC,IAAI,CAACC,IAAI,CAAC,GAAGD,IAAI,CAACE,KAAK;IAC/B;EACD;EAEA,OAAOH,MAAM;AACd;AAEA,OAAO,SAASI,WAAWA,CAC1BC,eAAuB,EACvBvE,MAA6B,EAC7BC,OAAkC,EAClB;EAChB,IAAIsE,eAAe,IAAI,IAAI,EAAE;IAC5B,OAAO,IAAI;EACZ;EAEA,IAAIC,KAAK,GAAGC,MAAM,CAACF,eAAe,CAAC,CACjCpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CACvBuB,IAAI,CAAC,CAAC;EACRF,KAAK,GAAGA,KAAK,CAACrB,OAAO,CAACQ,YAAY,EAAE,GAAG,CAAC,CAACR,OAAO,CAACS,WAAW,EAAE,GAAG,CAAC;EAElE,IAAIe,UAAU,GAAG,KAAK;EAEtB,MAAMC,QAAQ,GAAGJ,KAAK,CAACK,KAAK,CAAC,YAAY,CAAC;EAC1C,IAAID,QAAQ,EAAE;IACb,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACxBD,UAAU,GAAG,IAAI;IAClB;IACAH,KAAK,GAAGA,KAAK,CAACrB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;EACxC;EACA,MAAM2B,OAAO,GAAGN,KAAK,CAACK,KAAK,CAAC,YAAY,CAAC;EACzC,IAAIC,OAAO,EAAE;IACZ,IAAIA,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACvBH,UAAU,GAAG,IAAI;IAClB;IACAH,KAAK,GAAGA,KAAK,CAACrB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;EACtC;EAEA,IAAI4B,cAAc,GAAG/E,MAAM;EAC3B,IAAI+E,cAAc,KAAKC,SAAS,EAAE;IACjC,IAAIvC,gBAAgB,CAACwC,IAAI,CAACT,KAAK,CAAC,IAAI9B,iBAAiB,CAACuC,IAAI,CAACT,KAAK,CAAC,EAAE;MAClEO,cAAc,GAAG,IAAI;IACtB,CAAC,MAAM,IAAIpC,aAAa,CAACsC,IAAI,CAACT,KAAK,CAAC,EAAE;MACrCO,cAAc,GAAG,IAAI;IACtB;EACD;EAEA,MAAM;IAAEG,KAAK;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGrB,sBAAsB,CAC1DgB,cAAc,EACd9E,OACD,CAAC;EAED,MAAMoF,SAAS,GAAGtF,YAAY,CAACgF,cAAc,EAAE9E,OAAO,CAAC,CACrDgE,aAAa,CAAC,CAAC,CAAC,CAChBqB,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACnB,IAAI,KAAK,MAAM,CAAC,CAChCZ,GAAG,CAAE+B,CAAC,IAAKtC,YAAY,CAACsC,CAAC,CAAClB,KAAK,CAAC,CAAC;EACnC,MAAMmB,SAAS,GAAGH,SAAS,CAACI,MAAM,GAC/B,IAAIvD,MAAM,CAACmD,SAAS,CAAClD,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GACpC,IAAI;EAEP,IAAIuD,UAAyB,GAAG,IAAI;EACpC,IAAIR,KAAK,EAAE;IACV,MAAMS,YAAY,GAAG,SAAS,CAACV,IAAI,CAACC,KAAK,CAAC;IAC1C,MAAMU,iBAAiB,GAAGV,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,QAAQ;IAE7D,IAAIS,YAAY,EAAE;MACjBD,UAAU,GAAG,UAAU;IACxB,CAAC,MAAM,IAAIE,iBAAiB,EAAE;MAC7BF,UAAU,GAAG,YAAY;IAC1B,CAAC,MAAM;MACNA,UAAU,GAAG,IAAIxD,MAAM,CAACe,YAAY,CAACiC,KAAK,CAAC,EAAE,GAAG,CAAC;IAClD;EACD;EAEA,MAAMW,YAGJ,GAAG,CACJ;IAAEC,KAAK,EAAEZ,KAAK,GAAGQ,UAAU,GAAG,IAAI;IAAEK,WAAW,EAAE;EAAG,CAAC,EACrD;IACCD,KAAK,EAAEX,OAAO,GAAG,IAAIjD,MAAM,CAACe,YAAY,CAACkC,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI;IAC9DY,WAAW,EAAE;EACd,CAAC,EACD;IAAED,KAAK,EAAE,IAAI;IAAEC,WAAW,EAAE;EAAI,CAAC,EACjC;IAAED,KAAK,EAAE,IAAI;IAAEC,WAAW,EAAE;EAAG,CAAC,EAChC;IAAED,KAAK,EAAE,IAAI;IAAEC,WAAW,EAAE;EAAI,CAAC,EACjC;IAAED,KAAK,EAAE,IAAI;IAAEC,WAAW,EAAE;EAAG,CAAC,EAChC;IACCD,KAAK,EAAEV,QAAQ,GAAG,IAAIlD,MAAM,CAACe,YAAY,CAACmC,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI;IAChEW,WAAW,EAAE;EACd,CAAC,EACD;IAAED,KAAK,EAAEN,SAAS;IAAEO,WAAW,EAAE;EAAG,CAAC,EACrC;IACCD,KAAK,EAAE7D,SAAS;IAChB8D,WAAW,EAAGC,EAAE,IAAKvB,MAAM,CAACjD,eAAe,CAACyE,OAAO,CAACD,EAAE,CAAC;EACxD,CAAC,EACD;IACCF,KAAK,EAAE1D,UAAU;IACjB2D,WAAW,EAAGC,EAAE,IAAKvB,MAAM,CAAChD,gBAAgB,CAACwE,OAAO,CAACD,EAAE,CAAC;EACzD,CAAC,EACD;IACCF,KAAK,EAAEzD,YAAY;IACnB0D,WAAW,EAAGC,EAAE,IAAKvB,MAAM,CAAC/C,kBAAkB,CAACuE,OAAO,CAACD,EAAE,CAAC;EAC3D,CAAC,EACD;IAAEF,KAAK,EAAExD,MAAM;IAAEyD,WAAW,EAAGC,EAAE,IAAKpF,oBAAoB,CAACoF,EAAE,CAAC,IAAIA;EAAG,CAAC,CACtE;EAED,IAAIE,WAAW,GAAGL,YAAY,CAACM,MAAM,CAAC,CAACC,GAAG,EAAE;IAAEN,KAAK;IAAEC;EAAY,CAAC,KAAK;IACtE,OAAOD,KAAK,GACTM,GAAG,CAACjD,OAAO,CAAC2C,KAAK,EAAEC,WAAoC,CAAC,GACxDK,GAAG;EACP,CAAC,EAAE5B,KAAK,CAAC;EAET,MAAM6B,OAAO,GAAGH,WAAW,CAACI,WAAW,CAAC,GAAG,CAAC;EAC5C,IAAID,OAAO,KAAK,CAAC,CAAC,EAAE;IACnBH,WAAW,GAAG,GAAGA,WAAW,CAACK,KAAK,CAAC,CAAC,EAAEF,OAAO,CAAC,CAAClD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI+C,WAAW,CAACK,KAAK,CAACF,OAAO,GAAG,CAAC,CAAC,CAAClD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE;EACzH;EAEA,IAAI,kBAAkB,CAAC8B,IAAI,CAACT,KAAK,CAAC,IAAI,KAAK,CAACS,IAAI,CAACT,KAAK,CAAC,EAAE;IACxD,OAAO,IAAI;EACZ;EAEA,MAAMgC,WAAW,GAAG,CAAC7B,UAAU,GAAG,GAAG,GAAG,EAAE,IAAIuB,WAAW;EAEzD,IAAIO,GAAG,GAAGC,MAAM,CAACC,UAAU,CAACH,WAAW,CAAC;EAExC,MAAMI,KAAK,GAAG3G,OAAO,EAAE2G,KAAK;EAC5B,MAAMC,aAAa,GAAGD,KAAK,KAAK,MAAM,IAAI3G,OAAO,EAAE6G,IAAI,KAAK,SAAS;EACrE,MAAMC,gBAAgB,GACrBxE,UAAU,CAAC0C,IAAI,CAACV,eAAe,CAAC,IAAIqC,KAAK,KAAK,SAAS;EACxD,MAAMI,iBAAiB,GAAGxE,WAAW,CAACyC,IAAI,CAACV,eAAe,CAAC;EAE3D,IAAIyC,iBAAiB,EAAE;IACtBP,GAAG,IAAI,IAAI;EACZ,CAAC,MAAM,IAAI,CAACI,aAAa,IAAIE,gBAAgB,EAAE;IAC9CN,GAAG,IAAI,GAAG;EACX;EAEA,IAAIC,MAAM,CAACO,KAAK,CAACR,GAAG,CAAC,EAAE;IACtB,OAAO,IAAI;EACZ;EAEA,OAAOA,GAAG;AACX","ignoreList":[]}