@searchcraft/react-sdk 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -0
- package/dist/index.js +644 -636
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../core-sdk/dist/index.js","../../javascript-sdk/dist/components/p-5365011f.js","../../javascript-sdk/dist/components/p-6d8b0ead.js","../../javascript-sdk/dist/components/p-05872320.js","../../javascript-sdk/dist/components/p-6104fe5d.js","../../javascript-sdk/dist/components/p-cd9ba361.js","../../javascript-sdk/dist/components/p-d9551738.js","../../javascript-sdk/dist/components/p-0e393fe1.js","../../javascript-sdk/dist/components/searchcraft-base-search-results.js","../../javascript-sdk/dist/components/p-5cdc6210.js","../../javascript-sdk/dist/components/p-71cc28c1.js","../../javascript-sdk/dist/components/p-7777d986.js","../../javascript-sdk/dist/components/p-bb12ab5a.js","../../javascript-sdk/dist/components/p-11b05b94.js","../../javascript-sdk/dist/components/searchcraft-filter-panel.js","../../javascript-sdk/dist/components/p-e55a7970.js","../../javascript-sdk/dist/components/p-3026f7d3.js","../../javascript-sdk/dist/components/searchcraft-input-form.js","../../javascript-sdk/dist/components/searchcraft-pagination.js","../../javascript-sdk/dist/components/searchcraft-popover-button.js","../../javascript-sdk/dist/components/p-3568414f.js","../../javascript-sdk/dist/components/p-b0bc5cee.js","../../javascript-sdk/dist/components/searchcraft-popover-form.js","../../javascript-sdk/dist/components/searchcraft-results-info.js","../../javascript-sdk/dist/components/p-bf6a086a.js","../../javascript-sdk/dist/components/searchcraft-search-results-per-page.js","../../javascript-sdk/dist/components/searchcraft-theme.js","../../../node_modules/@lit/react/create-component.js","../../../node_modules/@stencil/react-output-target/dist/react.js","../src/stencil-web-components/components.ts","../src/components/SearchcraftBaseSearchResults.tsx","../src/components/SearchcraftFilterPanel.tsx","../src/components/SearchcraftInputForm.tsx","../src/components/SearchcraftPopoverButton.tsx","../src/components/SearchcraftPopoverForm.tsx","../src/components/SearchcraftResultsInfo.tsx","../src/components/SearchcraftTheme.tsx","../src/components/SearchcraftPagination.tsx","../src/components/SearchcraftSearchResultsPerPage.tsx","../src/index.ts"],"sourcesContent":["var L = Object.defineProperty;\nvar q = (n, t, r) => t in n ? L(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar h = (n, t, r) => q(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nvar F = /* @__PURE__ */ ((n) => (n[n.DEBUG = 0] = \"DEBUG\", n[n.INFO = 1] = \"INFO\", n[n.WARN = 2] = \"WARN\", n[n.ERROR = 3] = \"ERROR\", n))(F || {});\nclass pe {\n constructor(t) {\n h(this, \"logLevel\");\n h(this, \"logFormatter\");\n this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(t, r) {\n return `[${F[t]}] ${(/* @__PURE__ */ new Date()).toISOString()}: ${r}`;\n }\n debug(t) {\n this.logLevel <= 0 && console.log(this.logFormatter(0, t));\n }\n info(t) {\n this.logLevel <= 1 && console.info(this.logFormatter(1, t));\n }\n warn(t) {\n this.logLevel <= 2 && console.warn(this.logFormatter(2, t));\n }\n error(t) {\n this.logLevel <= 3 && console.error(this.logFormatter(3, t));\n }\n log(t, r) {\n switch (t) {\n case 0:\n this.debug(r);\n break;\n case 1:\n this.info(r);\n break;\n case 2:\n this.warn(r);\n break;\n case 3:\n this.error(r);\n break;\n }\n }\n}\nfunction w(n, t, r, o) {\n return new (r || (r = Promise))(function(a, i) {\n function e(u) {\n try {\n l(o.next(u));\n } catch (s) {\n i(s);\n }\n }\n function c(u) {\n try {\n l(o.throw(u));\n } catch (s) {\n i(s);\n }\n }\n function l(u) {\n var s;\n u.done ? a(u.value) : (s = u.value, s instanceof r ? s : new r(function(g) {\n g(s);\n })).then(e, c);\n }\n l((o = o.apply(n, [])).next());\n });\n}\nfunction y(n, t) {\n var r, o, a, i, e = { label: 0, sent: function() {\n if (1 & a[0]) throw a[1];\n return a[1];\n }, trys: [], ops: [] };\n return i = { next: c(0), throw: c(1), return: c(2) }, typeof Symbol == \"function\" && (i[Symbol.iterator] = function() {\n return this;\n }), i;\n function c(l) {\n return function(u) {\n return function(s) {\n if (r) throw new TypeError(\"Generator is already executing.\");\n for (; i && (i = 0, s[0] && (e = 0)), e; ) try {\n if (r = 1, o && (a = 2 & s[0] ? o.return : s[0] ? o.throw || ((a = o.return) && a.call(o), 0) : o.next) && !(a = a.call(o, s[1])).done) return a;\n switch (o = 0, a && (s = [2 & s[0], a.value]), s[0]) {\n case 0:\n case 1:\n a = s;\n break;\n case 4:\n return e.label++, { value: s[1], done: !1 };\n case 5:\n e.label++, o = s[1], s = [0];\n continue;\n case 7:\n s = e.ops.pop(), e.trys.pop();\n continue;\n default:\n if (a = e.trys, !((a = a.length > 0 && a[a.length - 1]) || s[0] !== 6 && s[0] !== 2)) {\n e = 0;\n continue;\n }\n if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) {\n e.label = s[1];\n break;\n }\n if (s[0] === 6 && e.label < a[1]) {\n e.label = a[1], a = s;\n break;\n }\n if (a && e.label < a[2]) {\n e.label = a[2], e.ops.push(s);\n break;\n }\n a[2] && e.ops.pop(), e.trys.pop();\n continue;\n }\n s = t.call(n, e);\n } catch (g) {\n s = [6, g], o = 0;\n } finally {\n r = a = 0;\n }\n if (5 & s[0]) throw s[1];\n return { value: s[0] ? s[1] : void 0, done: !0 };\n }([l, u]);\n };\n }\n}\nvar b = { exclude: [] }, O = {}, N = { timeout: \"true\" }, v = function(n, t) {\n typeof window < \"u\" && (O[n] = t);\n}, j = function() {\n return Object.fromEntries(Object.entries(O).filter(function(n) {\n var t, r = n[0];\n return !(!((t = b == null ? void 0 : b.exclude) === null || t === void 0) && t.includes(r));\n }).map(function(n) {\n return [n[0], (0, n[1])()];\n }));\n};\nfunction M(n) {\n return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, n = Math.imul(n, 3266489909), (n ^= n >>> 16) >>> 0;\n}\nvar f = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);\nfunction p(n, t) {\n return n << t | n >>> 32 - t;\n}\nfunction I(n, t) {\n var r;\n if (t === void 0 && (t = 0), t = t ? 0 | t : 0, typeof n == \"string\" && (r = n, n = new TextEncoder().encode(r).buffer), !(n instanceof ArrayBuffer)) throw new TypeError(\"Expected key to be ArrayBuffer or string\");\n var o = new Uint32Array([t, t, t, t]);\n (function(i, e) {\n for (var c = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * c), u = 0; u < c; u++) {\n var s = l.subarray(4 * u, 4 * (u + 1));\n s[0] = Math.imul(s[0], f[0]), s[0] = p(s[0], 15), s[0] = Math.imul(s[0], f[1]), e[0] = e[0] ^ s[0], e[0] = p(e[0], 19), e[0] = e[0] + e[1], e[0] = Math.imul(e[0], 5) + 1444728091, s[1] = Math.imul(s[1], f[1]), s[1] = p(s[1], 16), s[1] = Math.imul(s[1], f[2]), e[1] = e[1] ^ s[1], e[1] = p(e[1], 17), e[1] = e[1] + e[2], e[1] = Math.imul(e[1], 5) + 197830471, s[2] = Math.imul(s[2], f[2]), s[2] = p(s[2], 17), s[2] = Math.imul(s[2], f[3]), e[2] = e[2] ^ s[2], e[2] = p(e[2], 15), e[2] = e[2] + e[3], e[2] = Math.imul(e[2], 5) + 2530024501, s[3] = Math.imul(s[3], f[3]), s[3] = p(s[3], 18), s[3] = Math.imul(s[3], f[0]), e[3] = e[3] ^ s[3], e[3] = p(e[3], 13), e[3] = e[3] + e[0], e[3] = Math.imul(e[3], 5) + 850148119;\n }\n })(n, o), function(i, e) {\n var c = i.byteLength / 16 | 0, l = i.byteLength % 16, u = new Uint32Array(4), s = new Uint8Array(i, 16 * c, l);\n switch (l) {\n case 15:\n u[3] = u[3] ^ s[14] << 16;\n case 14:\n u[3] = u[3] ^ s[13] << 8;\n case 13:\n u[3] = u[3] ^ s[12] << 0, u[3] = Math.imul(u[3], f[3]), u[3] = p(u[3], 18), u[3] = Math.imul(u[3], f[0]), e[3] = e[3] ^ u[3];\n case 12:\n u[2] = u[2] ^ s[11] << 24;\n case 11:\n u[2] = u[2] ^ s[10] << 16;\n case 10:\n u[2] = u[2] ^ s[9] << 8;\n case 9:\n u[2] = u[2] ^ s[8] << 0, u[2] = Math.imul(u[2], f[2]), u[2] = p(u[2], 17), u[2] = Math.imul(u[2], f[3]), e[2] = e[2] ^ u[2];\n case 8:\n u[1] = u[1] ^ s[7] << 24;\n case 7:\n u[1] = u[1] ^ s[6] << 16;\n case 6:\n u[1] = u[1] ^ s[5] << 8;\n case 5:\n u[1] = u[1] ^ s[4] << 0, u[1] = Math.imul(u[1], f[1]), u[1] = p(u[1], 16), u[1] = Math.imul(u[1], f[2]), e[1] = e[1] ^ u[1];\n case 4:\n u[0] = u[0] ^ s[3] << 24;\n case 3:\n u[0] = u[0] ^ s[2] << 16;\n case 2:\n u[0] = u[0] ^ s[1] << 8;\n case 1:\n u[0] = u[0] ^ s[0] << 0, u[0] = Math.imul(u[0], f[0]), u[0] = p(u[0], 15), u[0] = Math.imul(u[0], f[1]), e[0] = e[0] ^ u[0];\n }\n }(n, o), function(i, e) {\n e[0] = e[0] ^ i.byteLength, e[1] = e[1] ^ i.byteLength, e[2] = e[2] ^ i.byteLength, e[3] = e[3] ^ i.byteLength, e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0, e[0] = M(e[0]), e[1] = M(e[1]), e[2] = M(e[2]), e[3] = M(e[3]), e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0;\n }(n, o);\n var a = new Uint8Array(o.buffer);\n return Array.from(a).map(function(i) {\n return i.toString(16).padStart(2, \"0\");\n }).join(\"\");\n}\nfunction G(n, t) {\n return new Promise(function(r) {\n setTimeout(function() {\n return r(t);\n }, n);\n });\n}\nfunction W(n, t, r) {\n return Promise.all(n.map(function(o) {\n return Promise.race([o, G(t, r)]);\n }));\n}\nfunction V() {\n return w(this, void 0, void 0, function() {\n var n, t, r, o, a;\n return y(this, function(i) {\n switch (i.label) {\n case 0:\n return i.trys.push([0, 2, , 3]), n = j(), t = Object.keys(n), [4, W(Object.values(n), (b == null ? void 0 : b.timeout) || 1e3, N)];\n case 1:\n return r = i.sent(), o = r.filter(function(e) {\n return e !== void 0;\n }), a = {}, o.forEach(function(e, c) {\n a[t[c]] = e;\n }), [2, U(a, b.exclude || [])];\n case 2:\n throw i.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction U(n, t) {\n var r = {}, o = function(i) {\n if (n.hasOwnProperty(i)) {\n var e = n[i];\n if (typeof e != \"object\" || Array.isArray(e)) t.includes(i) || (r[i] = e);\n else {\n var c = U(e, t.map(function(l) {\n return l.startsWith(i + \".\") ? l.slice(i.length + 1) : l;\n }));\n Object.keys(c).length > 0 && (r[i] = c);\n }\n }\n };\n for (var a in n) o(a);\n return r;\n}\nfunction $(n) {\n return w(this, void 0, void 0, function() {\n var t, r;\n return y(this, function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2, , 3]), [4, V()];\n case 1:\n return t = o.sent(), r = I(JSON.stringify(t)), [2, r.toString()];\n case 2:\n throw o.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction H(n) {\n for (var t = 0, r = 0; r < n.length; ++r) t += Math.abs(n[r]);\n return t;\n}\nfunction D(n, t, r) {\n for (var o = [], a = 0; a < n[0].data.length; a++) {\n for (var i = [], e = 0; e < n.length; e++) i.push(n[e].data[a]);\n o.push(z(i));\n }\n var c = new Uint8ClampedArray(o);\n return new ImageData(c, t, r);\n}\nfunction z(n) {\n if (n.length === 0) return 0;\n for (var t = {}, r = 0, o = n; r < o.length; r++)\n t[i = o[r]] = (t[i] || 0) + 1;\n var a = n[0];\n for (var i in t) t[i] > t[a] && (a = parseInt(i, 10));\n return a;\n}\nfunction E() {\n if (typeof navigator > \"u\") return { name: \"unknown\", version: \"unknown\" };\n for (var n = navigator.userAgent, t = { Edg: \"Edge\", OPR: \"Opera\" }, r = 0, o = [/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/]; r < o.length; r++) {\n var a = o[r], i = n.match(a);\n if (i && i.groups) return { name: t[i.groups.name] || i.groups.name, version: i.groups.version };\n }\n return { name: \"unknown\", version: \"unknown\" };\n}\nv(\"audio\", function() {\n return w(this, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, new Promise(function(t, r) {\n try {\n var o = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), a = o.createBufferSource(), i = o.createOscillator();\n i.frequency.value = 1e3;\n var e, c = o.createDynamicsCompressor();\n c.threshold.value = -50, c.knee.value = 40, c.ratio.value = 12, c.attack.value = 0, c.release.value = 0.2, i.connect(c), c.connect(o.destination), i.start(), o.oncomplete = function(l) {\n e = l.renderedBuffer.getChannelData(0), t({ sampleHash: H(e), oscillator: i.type, maxChannels: o.destination.maxChannelCount, channelCountMode: a.channelCountMode });\n }, o.startRendering();\n } catch (l) {\n console.error(\"Error creating audio fingerprint:\", l), r(l);\n }\n })];\n });\n });\n});\nvar K = E().name !== \"SamsungBrowser\" ? 1 : 3, k = 280, _ = 20;\nE().name != \"Firefox\" && v(\"canvas\", function() {\n return document.createElement(\"canvas\").getContext(\"2d\"), new Promise(function(n) {\n var t = Array.from({ length: K }, function() {\n return function() {\n var r = document.createElement(\"canvas\"), o = r.getContext(\"2d\");\n if (!o) return new ImageData(1, 1);\n r.width = k, r.height = _;\n var a = o.createLinearGradient(0, 0, r.width, r.height);\n a.addColorStop(0, \"red\"), a.addColorStop(0.16666666666666666, \"orange\"), a.addColorStop(0.3333333333333333, \"yellow\"), a.addColorStop(0.5, \"green\"), a.addColorStop(0.6666666666666666, \"blue\"), a.addColorStop(0.8333333333333334, \"indigo\"), a.addColorStop(1, \"violet\"), o.fillStyle = a, o.fillRect(0, 0, r.width, r.height);\n var i = \"Random Text WMwmil10Oo\";\n o.font = \"23.123px Arial\", o.fillStyle = \"black\", o.fillText(i, -5, 15), o.fillStyle = \"rgba(0, 0, 255, 0.5)\", o.fillText(i, -3.3, 17.7), o.beginPath(), o.moveTo(0, 0), o.lineTo(2 * r.width / 7, r.height), o.strokeStyle = \"white\", o.lineWidth = 2, o.stroke();\n var e = o.getImageData(0, 0, r.width, r.height);\n return e;\n }();\n });\n n({ commonImageDataHash: I(D(t, k, _).data.toString()).toString() });\n });\n});\nvar C, Q = [\"Arial\", \"Arial Black\", \"Arial Narrow\", \"Arial Rounded MT\", \"Arimo\", \"Archivo\", \"Barlow\", \"Bebas Neue\", \"Bitter\", \"Bookman\", \"Calibri\", \"Cabin\", \"Candara\", \"Century\", \"Century Gothic\", \"Comic Sans MS\", \"Constantia\", \"Courier\", \"Courier New\", \"Crimson Text\", \"DM Mono\", \"DM Sans\", \"DM Serif Display\", \"DM Serif Text\", \"Dosis\", \"Droid Sans\", \"Exo\", \"Fira Code\", \"Fira Sans\", \"Franklin Gothic Medium\", \"Garamond\", \"Geneva\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Inconsolata\", \"Indie Flower\", \"Inter\", \"Josefin Sans\", \"Karla\", \"Lato\", \"Lexend\", \"Lucida Bright\", \"Lucida Console\", \"Lucida Sans Unicode\", \"Manrope\", \"Merriweather\", \"Merriweather Sans\", \"Montserrat\", \"Myriad\", \"Noto Sans\", \"Nunito\", \"Nunito Sans\", \"Open Sans\", \"Optima\", \"Orbitron\", \"Oswald\", \"Pacifico\", \"Palatino\", \"Perpetua\", \"PT Sans\", \"PT Serif\", \"Poppins\", \"Prompt\", \"Public Sans\", \"Quicksand\", \"Rajdhani\", \"Recursive\", \"Roboto\", \"Roboto Condensed\", \"Rockwell\", \"Rubik\", \"Segoe Print\", \"Segoe Script\", \"Segoe UI\", \"Sora\", \"Source Sans Pro\", \"Space Mono\", \"Tahoma\", \"Taviraj\", \"Times\", \"Times New Roman\", \"Titillium Web\", \"Trebuchet MS\", \"Ubuntu\", \"Varela Round\", \"Verdana\", \"Work Sans\"], J = [\"monospace\", \"sans-serif\", \"serif\"];\nfunction P(n, t) {\n if (!n) throw new Error(\"Canvas context not supported\");\n return n.font, n.font = \"72px \".concat(t), n.measureText(\"WwMmLli0Oo\").width;\n}\nfunction Y() {\n var n, t = document.createElement(\"canvas\"), r = (n = t.getContext(\"webgl\")) !== null && n !== void 0 ? n : t.getContext(\"experimental-webgl\");\n if (r && \"getParameter\" in r) try {\n var o = (r.getParameter(r.VENDOR) || \"\").toString(), a = (r.getParameter(r.RENDERER) || \"\").toString(), i = { vendor: o, renderer: a, version: (r.getParameter(r.VERSION) || \"\").toString(), shadingLanguageVersion: (r.getParameter(r.SHADING_LANGUAGE_VERSION) || \"\").toString() };\n if (!a.length || !o.length) {\n var e = r.getExtension(\"WEBGL_debug_renderer_info\");\n if (e) {\n var c = (r.getParameter(e.UNMASKED_VENDOR_WEBGL) || \"\").toString(), l = (r.getParameter(e.UNMASKED_RENDERER_WEBGL) || \"\").toString();\n c && (i.vendorUnmasked = c), l && (i.rendererUnmasked = l);\n }\n }\n return i;\n } catch {\n }\n return \"undefined\";\n}\nfunction X() {\n var n = new Float32Array(1), t = new Uint8Array(n.buffer);\n return n[0] = 1 / 0, n[0] = n[0] - n[0], t[3];\n}\nfunction Z(n, t) {\n var r = {};\n return t.forEach(function(o) {\n var a = function(i) {\n if (i.length === 0) return null;\n var e = {};\n i.forEach(function(u) {\n var s = String(u);\n e[s] = (e[s] || 0) + 1;\n });\n var c = i[0], l = 1;\n return Object.keys(e).forEach(function(u) {\n e[u] > l && (c = u, l = e[u]);\n }), c;\n }(n.map(function(i) {\n return o in i ? i[o] : void 0;\n }).filter(function(i) {\n return i !== void 0;\n }));\n a && (r[o] = a);\n }), r;\n}\nfunction ee() {\n var n = [], t = { \"prefers-contrast\": [\"high\", \"more\", \"low\", \"less\", \"forced\", \"no-preference\"], \"any-hover\": [\"hover\", \"none\"], \"any-pointer\": [\"none\", \"coarse\", \"fine\"], pointer: [\"none\", \"coarse\", \"fine\"], hover: [\"hover\", \"none\"], update: [\"fast\", \"slow\"], \"inverted-colors\": [\"inverted\", \"none\"], \"prefers-reduced-motion\": [\"reduce\", \"no-preference\"], \"prefers-reduced-transparency\": [\"reduce\", \"no-preference\"], scripting: [\"none\", \"initial-only\", \"enabled\"], \"forced-colors\": [\"active\", \"none\"] };\n return Object.keys(t).forEach(function(r) {\n t[r].forEach(function(o) {\n matchMedia(\"(\".concat(r, \": \").concat(o, \")\")).matches && n.push(\"\".concat(r, \": \").concat(o));\n });\n }), n;\n}\nfunction te() {\n if (window.location.protocol === \"https:\" && typeof window.ApplePaySession == \"function\") try {\n for (var n = window.ApplePaySession.supportsVersion, t = 15; t > 0; t--) if (n(t)) return t;\n } catch {\n return 0;\n }\n return 0;\n}\nE().name != \"Firefox\" && v(\"fonts\", function() {\n var n = this;\n return new Promise(function(t, r) {\n try {\n (function(o) {\n var a;\n w(this, void 0, void 0, function() {\n var i, e, c;\n return y(this, function(l) {\n switch (l.label) {\n case 0:\n return document.body ? [3, 2] : [4, (u = 50, new Promise(function(g) {\n return setTimeout(g, u, s);\n }))];\n case 1:\n return l.sent(), [3, 0];\n case 2:\n if ((i = document.createElement(\"iframe\")).setAttribute(\"frameBorder\", \"0\"), (e = i.style).setProperty(\"position\", \"fixed\"), e.setProperty(\"display\", \"block\", \"important\"), e.setProperty(\"visibility\", \"visible\"), e.setProperty(\"border\", \"0\"), e.setProperty(\"opacity\", \"0\"), i.src = \"about:blank\", document.body.appendChild(i), !(c = i.contentDocument || ((a = i.contentWindow) === null || a === void 0 ? void 0 : a.document))) throw new Error(\"Iframe document is not accessible\");\n return o({ iframe: c }), setTimeout(function() {\n document.body.removeChild(i);\n }, 0), [2];\n }\n var u, s;\n });\n });\n })(function(o) {\n var a = o.iframe;\n return w(n, void 0, void 0, function() {\n var i, e, c, l;\n return y(this, function(u) {\n return i = a.createElement(\"canvas\"), e = i.getContext(\"2d\"), c = J.map(function(s) {\n return P(e, s);\n }), l = {}, Q.forEach(function(s) {\n var g = P(e, s);\n c.includes(g) || (l[s] = g);\n }), t(l), [2];\n });\n });\n });\n } catch {\n r({ error: \"unsupported\" });\n }\n });\n}), v(\"hardware\", function() {\n return new Promise(function(n, t) {\n var r = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, o = window.performance && window.performance.memory ? window.performance.memory : 0;\n n({ videocard: Y(), architecture: X(), deviceMemory: r.toString() || \"undefined\", jsHeapSizeLimit: o.jsHeapSizeLimit || 0 });\n });\n}), v(\"locales\", function() {\n return new Promise(function(n) {\n n({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });\n });\n}), v(\"permissions\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n return C = (b == null ? void 0 : b.permissions_to_check) || [\"accelerometer\", \"accessibility\", \"accessibility-events\", \"ambient-light-sensor\", \"background-fetch\", \"background-sync\", \"bluetooth\", \"camera\", \"clipboard-read\", \"clipboard-write\", \"device-info\", \"display-capture\", \"gyroscope\", \"geolocation\", \"local-fonts\", \"magnetometer\", \"microphone\", \"midi\", \"nfc\", \"notifications\", \"payment-handler\", \"persistent-storage\", \"push\", \"speaker\", \"storage-access\", \"top-level-storage-access\", \"window-management\", \"query\"], n = Array.from({ length: (b == null ? void 0 : b.retries) || 3 }, function() {\n return function() {\n return w(this, void 0, void 0, function() {\n var r, o, a, i, e;\n return y(this, function(c) {\n switch (c.label) {\n case 0:\n r = {}, o = 0, a = C, c.label = 1;\n case 1:\n if (!(o < a.length)) return [3, 6];\n i = a[o], c.label = 2;\n case 2:\n return c.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];\n case 3:\n return e = c.sent(), r[i] = e.state.toString(), [3, 5];\n case 4:\n return c.sent(), [3, 5];\n case 5:\n return o++, [3, 1];\n case 6:\n return [2, r];\n }\n });\n });\n }();\n }), [2, Promise.all(n).then(function(r) {\n return Z(r, C);\n })];\n });\n });\n}), v(\"plugins\", function() {\n var n = [];\n if (navigator.plugins) for (var t = 0; t < navigator.plugins.length; t++) {\n var r = navigator.plugins[t];\n n.push([r.name, r.filename, r.description].join(\"|\"));\n }\n return new Promise(function(o) {\n o({ plugins: n });\n });\n}), v(\"screen\", function() {\n return new Promise(function(n) {\n n({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });\n });\n}), v(\"system\", function() {\n return new Promise(function(n) {\n var t = E();\n n({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: t.name, version: t.version }, applePayVersion: te() });\n });\n});\nvar m, ne = E().name !== \"SamsungBrowser\" ? 1 : 3, d = null;\nv(\"webgl\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n typeof document < \"u\" && ((m = document.createElement(\"canvas\")).width = 200, m.height = 100, d = m.getContext(\"webgl\"));\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n return n = Array.from({ length: ne }, function() {\n return function() {\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n var r = `\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `, o = `\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n `, a = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);\n if (!a || !i) throw new Error(\"Failed to create shaders\");\n if (d.shaderSource(a, r), d.shaderSource(i, o), d.compileShader(a), !d.getShaderParameter(a, d.COMPILE_STATUS)) throw new Error(\"Vertex shader compilation failed: \" + d.getShaderInfoLog(a));\n if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error(\"Fragment shader compilation failed: \" + d.getShaderInfoLog(i));\n var e = d.createProgram();\n if (!e) throw new Error(\"Failed to create shader program\");\n if (d.attachShader(e, a), d.attachShader(e, i), d.linkProgram(e), !d.getProgramParameter(e, d.LINK_STATUS)) throw new Error(\"Shader program linking failed: \" + d.getProgramInfoLog(e));\n d.useProgram(e);\n for (var c = 137, l = new Float32Array(4 * c), u = 2 * Math.PI / c, s = 0; s < c; s++) {\n var g = s * u;\n l[4 * s] = 0, l[4 * s + 1] = 0, l[4 * s + 2] = Math.cos(g) * (m.width / 2), l[4 * s + 3] = Math.sin(g) * (m.height / 2);\n }\n var B = d.createBuffer();\n d.bindBuffer(d.ARRAY_BUFFER, B), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);\n var x = d.getAttribLocation(e, \"position\");\n d.enableVertexAttribArray(x), d.vertexAttribPointer(x, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, m.width, m.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * c);\n var T = new Uint8ClampedArray(m.width * m.height * 4);\n return d.readPixels(0, 0, m.width, m.height, d.RGBA, d.UNSIGNED_BYTE, T), new ImageData(T, m.width, m.height);\n } catch {\n return new ImageData(1, 1);\n } finally {\n d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));\n }\n }();\n }), [2, { commonImageHash: I(D(n, m.width, m.height).data.toString()).toString() }];\n } catch {\n return [2, { webgl: \"unsupported\" }];\n }\n return [2];\n });\n });\n});\nvar S = function(n, t, r, o) {\n for (var a = (r - t) / o, i = 0, e = 0; e < o; e++)\n i += n(t + (e + 0.5) * a);\n return i * a;\n};\nv(\"math\", function() {\n return w(void 0, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, { acos: Math.acos(0.5), asin: S(Math.asin, -1, 1, 97), atan: S(Math.atan, -1, 1, 97), cos: S(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: S(Math.sin, -Math.PI, Math.PI, 97), sinh: S(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: S(Math.tan, 0, 2 * Math.PI, 97), tanh: S(Math.tanh, -9 / 7, 7 / 9, 97) }];\n });\n });\n});\nconst re = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet A = (n = 21) => {\n let t = \"\", r = crypto.getRandomValues(new Uint8Array(n |= 0));\n for (; n--; )\n t += re[r[n] & 63];\n return t;\n};\nclass R {\n constructor(t) {\n h(this, \"config\");\n this.config = t;\n }\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass oe extends R {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAdsForSearchParams(t) {\n if (!this.config.admSub)\n return console.error(\"No admSub specified in config.\"), [];\n const o = `https://demofeed.is.ampfeed.com/is?${new URLSearchParams({\n partner: \"demofeed\",\n sub1: this.config.admSub,\n qt: t.searchTerm,\n v: \"2.0\",\n rfr: \"searchcraft.io\",\n \"results-ta\": `${this.config.admTextAdQuantity || 0}`,\n \"results-pa\": `${this.config.admProductAdQuantity || 0}`\n }).toString()}`, i = await (await fetch(o, { method: \"GET\" })).json(), e = i.product_ads.map(\n (u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-product-ad\",\n admAd: u\n })\n ), c = i.text_ads.map((u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-text-ad\",\n admAd: u\n }));\n return e.concat(c);\n }\n}\nclass ie extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass ae extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nconst se = 500;\nclass ue {\n constructor(t, r, o) {\n h(this, \"measureRequestTimeout\");\n h(this, \"measureRequestsBatched\", []);\n h(this, \"config\");\n h(this, \"sdkInfo\");\n h(this, \"userId\");\n h(this, \"sessionId\");\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n h(this, \"sendMeasureEvent\", (t, r = {}, o = {}) => {\n const a = {\n event_name: t,\n properties: {\n searchcraft_index_names: this.config.index,\n session_id: this.sessionId,\n ...r\n },\n user: {\n ...this.measureRequestUser,\n ...o\n }\n };\n this.measureRequestsBatched.push(a), clearTimeout(this.measureRequestTimeout), this.measureRequestTimeout = setTimeout(async () => {\n const i = JSON.stringify({ items: this.measureRequestsBatched }), e = `${this.baseMeasureUrl}/batch`;\n try {\n const c = await fetch(e, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: this.config.readKey,\n \"X-Sc-User-Id\": this.userId\n },\n body: i,\n keepalive: !0\n });\n if (!c.ok)\n throw new Error(\n `Failed to send request: ${c.status} ${c.statusText}`\n );\n this.measureRequestsBatched = [];\n return;\n } catch (c) {\n throw console.error(\"Error sending MeasureRequest:\", c), c;\n }\n }, se);\n });\n this.config = t, this.sdkInfo = r, this.userId = o, this.sessionId = A(), this.sendMeasureEvent(\"sdk_initialized\");\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || \"en-US\",\n os: navigator.userAgent.includes(\"Windows\") ? \"Windows\" : navigator.userAgent.includes(\"Mac\") ? \"Mac\" : navigator.userAgent.includes(\"Linux\") ? \"Linux\" : \"Unknown\",\n platform: navigator.platform || \"Unknown\",\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || \"Unknown\"\n };\n }\n}\nfunction ce(n) {\n const t = [];\n let r = \"should\";\n return n.facetPathsForIndexFields && Object.keys(n.facetPathsForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.facetPathsForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.rangeValueForIndexFields && Object.keys(n.rangeValueForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.rangeValueForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.sort === \"desc\" ? n.order_by = \"date_published\" : n.order_by = \"\", t.push({\n occur: r,\n // Valid, as 'occur' is a required property in QueryItem\n [n.mode]: { ctx: n.searchTerm }\n // Ensure dynamic mode is inside queryType\n }), t;\n}\nconst de = (n) => n.endsWith(\"/\") ? n.slice(0, -1) : n, le = (n) => {\n let t = \"\";\n if (t = n.trim(), t = t.replace(/[‘’“”]/g, (o) => ({\n \"‘\": \"'\",\n \"’\": \"'\",\n \"“\": '\"',\n \"”\": '\"'\n })[o] || o), (t.match(/\"/g) || []).length % 2 !== 0)\n throw new Error(\n \"The search term contains an uneven number of quote characters.\"\n );\n return t;\n};\nclass he {\n constructor(t, r, o) {\n h(this, \"config\");\n h(this, \"userId\");\n h(this, \"parent\");\n /**\n * Performs a search operation.\n * @param {SearchParams} searchParams - The parameters for the search.\n */\n h(this, \"getSearchResponse\", async (t) => {\n var o, a;\n const r = le(t.searchTerm);\n (o = this.parent.measureClient) == null || o.sendMeasureEvent(\"search_requested\", {\n search_term: r\n }), this.parent.emitEvent(\"query_submitted\", {\n name: \"query_submitted\",\n data: {\n searchTerm: r\n }\n });\n try {\n const i = {\n query: ce(t),\n offset: t.offset || 0,\n // Default to 0 (first page) if not provided\n limit: t.limit || this.config.searchResultsPerPage || 20\n // Default to 20 if not provided\n };\n t.order_by && (i.order_by = t.order_by, i.sort = t.sort === \"desc\" || t.sort === \"asc\" ? t.sort : \"asc\");\n const e = {\n method: \"POST\",\n headers: {\n Authorization: this.config.readKey,\n \"Content-Type\": \"application/json\",\n \"X-Sc-User-Id\": this.userId\n },\n body: JSON.stringify(i)\n }, c = await fetch(this.baseSearchUrl, e);\n if (!c.ok)\n throw new Error(\n `Error: ${c.statusText} (Status: ${c.status})`\n );\n const l = await c.json();\n return (a = this.parent.measureClient) == null || a.sendMeasureEvent(\"search_response_received\", {\n search_term: r,\n number_of_documents: l.data.count\n }), l;\n } catch (i) {\n throw console.error(\"Error parsing response:\", i), i;\n }\n });\n this.parent = t, this.config = r, this.userId = o;\n }\n /**\n * Getter for the base url used by the /search endpoint.\n */\n get baseSearchUrl() {\n return `${this.config.endpointURL}/index/${this.config.index.join(\",\")}/search`;\n }\n}\nclass ge {\n constructor(t, r) {\n h(this, \"config\");\n h(this, \"measureClient\");\n h(this, \"searchClient\");\n h(this, \"adClient\");\n h(this, \"userId\");\n h(this, \"requestTimeout\");\n h(this, \"subscriptionEvents\", {});\n /**\n * Gets items from the SearchClient and the AdClient.\n */\n h(this, \"getItems\", (t, r, o) => {\n const a = async () => {\n (async () => {\n var c, l;\n const i = await ((c = this == null ? void 0 : this.searchClient) == null ? void 0 : c.getSearchResponse(t));\n if (!i)\n throw new Error(\"Search client was not initialized.\");\n const e = (l = i.data.hits || []) == null ? void 0 : l.map((u) => u.doc).filter((u) => !!u).map((u) => ({\n type: \"SearchDocument\",\n id: A(),\n document: u\n }));\n e.length === 0 && this.emitEvent(\"no_results_returned\", {\n name: \"no_results_returned\"\n }), r(i, e);\n })(), (async () => {\n if (this.adClient) {\n const i = await this.adClient.getAdsForSearchParams(t);\n o(i);\n }\n })();\n };\n clearTimeout(this.requestTimeout), this.config.searchDebounceDelay ? this.requestTimeout = setTimeout(\n a,\n this.config.searchDebounceDelay\n ) : a();\n });\n if (!t.endpointURL || !t.index || !t.readKey)\n throw new Error(\n \"Endpoint URL, Index value(s), and Read Key must be provided\"\n );\n this.config = {\n ...t,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: de(t.endpointURL)\n }, this.userId = \"\", this.initClients(this.config, r), this.initInputForms(), this.startObservingMutations();\n }\n initInputForms() {\n const t = document.querySelectorAll(\n \"searchcraft-input-form\"\n );\n setTimeout(() => {\n t.forEach((r) => {\n r.core = this;\n });\n }, 40);\n }\n /**\n * When changes happen in the DOM, we want to link any input forms found to the instance of the core.\n */\n startObservingMutations() {\n new MutationObserver((r, o) => {\n let a = !1;\n for (const i of r)\n i.type === \"childList\" && i.addedNodes.forEach((e) => {\n e.nodeType === 1 && e.className.toLowerCase() === \"searchcraft-input-form\" && (a = !0);\n });\n a && this.initInputForms();\n }).observe(document.body, { childList: !0, subtree: !0 });\n }\n initClients(t, r) {\n setTimeout(async () => {\n let o = this.config.userId;\n switch (o || (o = await $()), this.measureClient = new ue(t, r, o), this.searchClient = new he(this, t, o), t.adSource) {\n case \"adMarketplace\":\n this.adClient = new oe(t);\n break;\n case \"Nativo\":\n this.adClient = new ae(t);\n break;\n case \"Custom\":\n this.adClient = new ie(t);\n break;\n }\n }, 300);\n }\n emitEvent(t, r) {\n var o;\n (o = this.subscriptionEvents[t]) == null || o.forEach((a) => {\n a(r);\n });\n }\n subscribe(t, r) {\n return this.subscriptionEvents[t] || (this.subscriptionEvents[t] = []), this.subscriptionEvents[t].push(\n r\n ), () => {\n this.subscriptionEvents[t] = this.subscriptionEvents[t].filter((o) => o !== r);\n };\n }\n}\nexport {\n F as LogLevel,\n pe as Logger,\n ge as SearchcraftCore\n};\n//# sourceMappingURL=index.js.map\n","const NAMESPACE = 'searchcraft-javascript-sdk';\nconst BUILD = /* searchcraft-javascript-sdk */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: false, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: \"hydrated\", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, modernPropertyDecls: true, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: false, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: false, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };\n\n/*\n Stencil Client Platform v4.25.0 | MIT Licensed | https://stenciljs.com\n */\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\n\n// src/utils/es2022-rewire-class-members.ts\nvar reWireGetterSetter = (instance, hostRef) => {\n var _a;\n const cmpMeta = hostRef.$cmpMeta$;\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(instance), memberName);\n Object.defineProperty(instance, memberName, {\n get() {\n return ogDescriptor.get.call(this);\n },\n set(newValue) {\n ogDescriptor.set.call(this, newValue);\n },\n configurable: true,\n enumerable: true\n });\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\n\n// src/client/client-host-ref.ts\nvar hostRefs = /* @__PURE__ */ new WeakMap();\nvar deleteHostRef = (ref) => hostRefs.delete(ref);\nvar getHostRef = (ref) => hostRefs.get(ref);\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n const ref = hostRefs.set(hostElement, hostRef);\n {\n reWireGetterSetter(hostElement, hostRef);\n }\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\nvar consoleError = (e, el) => (0, console.error)(e, el);\nvar win = typeof window !== \"undefined\" ? window : {};\nvar doc = win.document || { head: {} };\nvar H = win.HTMLElement || class {\n};\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: \"\",\n jmp: (h2) => h2(),\n raf: (h2) => requestAnimationFrame(h2),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nvar supportsShadow = BUILD.shadowDom;\nvar promiseResolve = (v) => Promise.resolve(v);\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nvar consume = (queue) => {\n for (let i2 = 0; i2 < queue.length; i2++) {\n try {\n queue[i2](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar flush = () => {\n consume(queueDomReads);\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\n\n// src/runtime/asset-path.ts\nvar getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nvar setAssetPath = (path) => plt.$resourcesUrl$ = path;\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// src/utils/result.ts\nvar result_exports = {};\n__export(result_exports, {\n err: () => err,\n map: () => map,\n ok: () => ok,\n unwrap: () => unwrap,\n unwrapErr: () => unwrapErr\n});\nvar ok = (value) => ({\n isOk: true,\n isErr: false,\n value\n});\nvar err = (value) => ({\n isOk: false,\n isErr: true,\n value\n});\nfunction map(result, fn) {\n if (result.isOk) {\n const val = fn(result.value);\n if (val instanceof Promise) {\n return val.then((newVal) => ok(newVal));\n } else {\n return ok(val);\n }\n }\n if (result.isErr) {\n const value = result.value;\n return err(value);\n }\n throw \"should never get here\";\n}\nvar unwrap = (result) => {\n if (result.isOk) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar unwrapErr = (result) => {\n if (result.isErr) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar updateFallbackSlotVisibility = (elm) => {\n const childNodes = elm.__childNodes || elm.childNodes;\n if (elm.tagName && elm.tagName.includes(\"-\") && elm[\"s-cr\"] && elm.tagName !== \"SLOT-FB\") {\n getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {\n var _a;\n if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === \"SLOT-FB\") {\n if ((_a = getHostSlotChildNodes(slotNode, slotNode[\"s-sn\"], false)) == null ? void 0 : _a.length) {\n slotNode.hidden = true;\n } else {\n slotNode.hidden = false;\n }\n }\n });\n }\n for (const childNode of childNodes) {\n if (childNode.nodeType === 1 /* ElementNode */ && (childNode.__childNodes || childNode.childNodes).length) {\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nfunction getHostSlotNodes(childNodes, hostName, slotName) {\n let i2 = 0;\n let slottedNodes = [];\n let childNode;\n for (; i2 < childNodes.length; i2++) {\n childNode = childNodes[i2];\n if (childNode[\"s-sr\"] && childNode[\"s-hn\"] === hostName && (slotName === void 0 || childNode[\"s-sn\"] === slotName)) {\n slottedNodes.push(childNode);\n if (typeof slotName !== \"undefined\") return slottedNodes;\n }\n slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];\n }\n return slottedNodes;\n}\nvar getHostSlotChildNodes = (node, slotName, includeSlot = true) => {\n const childNodes = [];\n if (includeSlot && node[\"s-sr\"] || !node[\"s-sr\"]) childNodes.push(node);\n while ((node = node.nextSibling) && node[\"s-sn\"] === slotName) {\n childNodes.push(node);\n }\n return childNodes;\n};\nvar isNodeLocatedInSlot = (nodeToRelocate, slotName) => {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute(\"slot\") === null && slotName === \"\") {\n return true;\n }\n if (nodeToRelocate.getAttribute(\"slot\") === slotName) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate[\"s-sn\"] === slotName) {\n return true;\n }\n return slotName === \"\";\n};\nvar createTime = (fnName, tagName = \"\") => {\n {\n return () => {\n return;\n };\n }\n};\nvar h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i2 = 0; i2 < c.length; i2++) {\n child = c[i2];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== \"boolean\") {\n if (simple = typeof nodeName !== \"function\" && !isComplexType(child)) {\n child = String(child);\n }\n if (simple && lastSimple) {\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== \"object\" ? classData : Object.keys(classData).filter((k) => classData[k]).join(\" \");\n }\n }\n }\n if (typeof nodeName === \"function\") {\n return nodeName(\n vnodeData === null ? {} : vnodeData,\n vNodeChildren,\n vdomFnUtils\n );\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = (node) => node && node.$tag$ === Host;\nvar vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate)\n};\nvar convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$\n});\nvar convertToPrivate = (node) => {\n if (typeof node.vtag === \"function\") {\n const vnodeData = { ...node.vattrs };\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...node.vchildren || []);\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\nvar parsePropertyValue = (propValue, propType) => {\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n if (propType & 2 /* Number */) {\n return parseFloat(propValue);\n }\n if (propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\nvar getElement = (ref) => ref;\n\n// src/runtime/event-emitter.ts\nvar createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail\n });\n }\n };\n};\nvar emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n if (elm[\"s-si\"]) {\n newClasses.push(elm[\"s-si\"]);\n oldClasses.forEach((c) => {\n if (c.startsWith(elm[\"s-si\"])) newClasses.push(c);\n });\n newClasses = [...new Set(newClasses)];\n classList.add(...newClasses);\n delete elm[\"s-si\"];\n } else {\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n } else if (memberName === \"style\") {\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes(\"-\")) {\n elm.style.removeProperty(prop);\n } else {\n elm.style[prop] = \"\";\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (memberName === \"key\") ; else if ((!elm.__lookupSetter__(memberName)) && memberName[0] === \"o\" && memberName[1] === \"n\") {\n if (memberName[2] === \"-\") {\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n memberName = ln.slice(2);\n } else {\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue || newValue) {\n const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);\n memberName = memberName.replace(CAPTURE_EVENT_REGEX, \"\");\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, capture);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, capture);\n }\n }\n } else {\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes(\"-\")) {\n const n = newValue == null ? \"\" : newValue;\n if (memberName === \"list\") {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n if (typeof elm.__lookupSetter__(memberName) === \"function\") {\n elm[memberName] = n;\n } else {\n elm.setAttribute(memberName, n);\n }\n }\n } else if (elm[memberName] !== newValue) {\n elm[memberName] = newValue;\n }\n } catch (e) {\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? \"\" : newValue;\n {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = (value) => {\n if (typeof value === \"object\" && \"baseVal\" in value) {\n value = value.baseVal;\n }\n if (!value) {\n return [];\n }\n return value.split(parseClassListRegex);\n};\nvar CAPTURE_EVENT_SUFFIX = \"Capture\";\nvar CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + \"$\");\n\n// src/runtime/vdom/update-element.ts\nvar updateElement = (oldVnode, newVnode, isSvgMode2) => {\n const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};\n const newVnodeAttrs = newVnode.$attrs$ || {};\n {\n for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], void 0, isSvgMode2, newVnode.$flags$);\n }\n }\n }\n for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode2, newVnode.$flags$);\n }\n};\nfunction sortedAttrNames(attrNames) {\n return attrNames.includes(\"ref\") ? (\n // we need to sort these to ensure that `'ref'` is the last attr\n [...attrNames.filter((attr) => attr !== \"ref\"), \"ref\"]\n ) : (\n // no need to sort, return the original array\n attrNames\n );\n}\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar createElm = (oldParentVNode, newParentVNode, childIndex) => {\n var _a;\n const newVNode2 = newParentVNode.$children$[childIndex];\n let i2 = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (!useNativeShadowDom) {\n checkSlotRelocate = true;\n if (newVNode2.$tag$ === \"slot\") {\n newVNode2.$flags$ |= newVNode2.$children$ ? (\n // slot element has fallback content\n // still create an element that \"mocks\" the slot element\n 2 /* isSlotFallback */\n ) : (\n // slot element does not have fallback content\n // create an html comment we'll use to always reference\n // where actual slot content should sit next to\n 1 /* isSlotReference */\n );\n }\n }\n if (newVNode2.$text$ !== null) {\n elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);\n } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {\n elm = newVNode2.$elm$ = doc.createTextNode(\"\");\n } else {\n if (!isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n elm = newVNode2.$elm$ = doc.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n ) ;\n if (isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n {\n updateElement(null, newVNode2, isSvgMode);\n }\n if (newVNode2.$children$) {\n for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {\n childNode = createElm(oldParentVNode, newVNode2, i2);\n if (childNode) {\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode2.$tag$ === \"svg\") {\n isSvgMode = false;\n } else if (elm.tagName === \"foreignObject\") {\n isSvgMode = true;\n }\n }\n }\n elm[\"s-hn\"] = hostTagName;\n {\n if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n elm[\"s-sr\"] = true;\n elm[\"s-cr\"] = contentRef;\n elm[\"s-sn\"] = newVNode2.$name$ || \"\";\n elm[\"s-rf\"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {\n {\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);\n if (parentElm[\"s-sr\"] && BUILD.experimentalSlotFixes) {\n let node = parentElm;\n while (node = node.nextSibling) {\n if (node && node[\"s-sn\"] === parentElm[\"s-sn\"] && node[\"s-sh\"] === hostTagName) {\n oldSlotChildNodes.push(node);\n }\n }\n }\n for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {\n const childNode = oldSlotChildNodes[i2];\n if (childNode[\"s-hn\"] !== hostTagName && childNode[\"s-ol\"]) {\n insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));\n childNode[\"s-ol\"].remove();\n childNode[\"s-ol\"] = void 0;\n childNode[\"s-sh\"] = void 0;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm[\"s-cr\"] && parentElm[\"s-cr\"].parentNode || parentElm;\n let childNode;\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n insertBefore(containerElm, childNode, referenceNode(before) );\n }\n }\n }\n};\nvar removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n if (elm) {\n {\n checkSlotFallbackVisibility = true;\n if (elm[\"s-ol\"]) {\n elm[\"s-ol\"].remove();\n } else {\n putBackInOriginalLocation(elm, true);\n }\n }\n elm.remove();\n }\n }\n }\n};\nvar updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i2 = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {\n patch(oldStartVnode, newStartVnode, isInitialRender);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {\n patch(oldEndVnode, newEndVnode, isInitialRender);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {\n if ((oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode, isInitialRender);\n insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {\n if ((oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode, isInitialRender);\n insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n idxInOld = -1;\n {\n for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {\n if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {\n idxInOld = i2;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);\n } else {\n patch(elmToMove, newStartVnode, isInitialRender);\n oldCh[idxInOld] = void 0;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n } else {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n insertBefore(\n referenceNode(oldStartVnode.$elm$).parentNode,\n node,\n referenceNode(oldStartVnode.$elm$)\n );\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(\n parentElm,\n newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,\n newVNode2,\n newCh,\n newStartIdx,\n newEndIdx\n );\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (leftVNode.$tag$ === \"slot\") {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n if (!isInitialRender) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {\n leftVNode.$key$ = rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nvar referenceNode = (node) => node && node[\"s-ol\"] || node;\nvar patch = (oldVNode, newVNode2, isInitialRender = false) => {\n const elm = newVNode2.$elm$ = oldVNode.$elm$;\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode2.$children$;\n const tag = newVNode2.$tag$;\n const text = newVNode2.$text$;\n let defaultHolder;\n if (text === null) {\n {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n {\n if (tag === \"slot\" && !useNativeShadowDom) ; else {\n updateElement(oldVNode, newVNode2, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n if (oldVNode.$text$ !== null) {\n elm.textContent = \"\";\n }\n addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);\n } else if (\n // don't do this on initial render as it can cause non-hydrated content to be removed\n !isInitialRender && BUILD.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n } else if ((defaultHolder = elm[\"s-cr\"])) {\n defaultHolder.parentNode.textContent = text;\n } else if (oldVNode.$text$ !== text) {\n elm.data = text;\n }\n};\nvar relocateNodes = [];\nvar markSlotContentForRelocation = (elm) => {\n let node;\n let hostContentNodes;\n let j;\n const children = elm.__childNodes || elm.childNodes;\n for (const childNode of children) {\n if (childNode[\"s-sr\"] && (node = childNode[\"s-cr\"]) && node.parentNode) {\n hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;\n const slotName = childNode[\"s-sn\"];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node[\"s-cn\"] && !node[\"s-nr\"] && node[\"s-hn\"] !== childNode[\"s-hn\"] && (!BUILD.experimentalSlotFixes )) {\n if (isNodeLocatedInSlot(node, slotName)) {\n let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n checkSlotFallbackVisibility = true;\n node[\"s-sn\"] = node[\"s-sn\"] || slotName;\n if (relocateNodeData) {\n relocateNodeData.$nodeToRelocate$[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodeData.$slotRefNode$ = childNode;\n } else {\n node[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node\n });\n }\n if (node[\"s-sr\"]) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node[\"s-sn\"])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n relocateNodes.push({\n $nodeToRelocate$: node\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n markSlotContentForRelocation(childNode);\n }\n }\n};\nvar insertBefore = (parent, newNode, reference) => {\n {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n var _a, _b, _c, _d;\n const hostElm = hostRef.$hostElement$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n if (hostElm.hasAttribute(key) && ![\"key\", \"ref\", \"style\", \"class\"].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = hostElm;\n useNativeShadowDom = supportsShadow ;\n {\n contentRef = hostElm[\"s-cr\"];\n checkSlotFallbackVisibility = false;\n }\n patch(oldVNode, rootVnode, isInitialLoad);\n {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n markSlotContentForRelocation(rootVnode.$elm$);\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate[\"s-ol\"]) {\n const orgLocationNode = doc.createTextNode(\"\");\n orgLocationNode[\"s-nr\"] = nodeToRelocate;\n insertBefore(nodeToRelocate.parentNode, nodeToRelocate[\"s-ol\"] = orgLocationNode, nodeToRelocate);\n }\n }\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n const slotRefNode = relocateData.$slotRefNode$;\n if (slotRefNode) {\n const parentNodeRef = slotRefNode.parentNode;\n let insertBeforeNode = slotRefNode.nextSibling;\n {\n let orgLocationNode = (_a = nodeToRelocate[\"s-ol\"]) == null ? void 0 : _a.previousSibling;\n while (orgLocationNode) {\n let refNode = (_b = orgLocationNode[\"s-nr\"]) != null ? _b : null;\n if (refNode && refNode[\"s-sn\"] === nodeToRelocate[\"s-sn\"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {\n refNode = refNode.nextSibling;\n while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode[\"s-sr\"])) {\n refNode = refNode == null ? void 0 : refNode.nextSibling;\n }\n if (!refNode || !refNode[\"s-nr\"]) {\n insertBeforeNode = refNode;\n break;\n }\n }\n orgLocationNode = orgLocationNode.previousSibling;\n }\n }\n const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;\n const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;\n if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate[\"s-hn\"] && nodeToRelocate[\"s-ol\"]) {\n nodeToRelocate[\"s-hn\"] = nodeToRelocate[\"s-ol\"].parentNode.nodeName;\n }\n insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);\n if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== \"SLOT-FB\") {\n nodeToRelocate.hidden = (_c = nodeToRelocate[\"s-ih\"]) != null ? _c : false;\n }\n }\n }\n nodeToRelocate && typeof slotRefNode[\"s-rf\"] === \"function\" && slotRefNode[\"s-rf\"](nodeToRelocate);\n } else {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (isInitialLoad) {\n nodeToRelocate[\"s-ih\"] = (_d = nodeToRelocate.hidden) != null ? _d : false;\n }\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n relocateNodes.length = 0;\n }\n contentRef = void 0;\n};\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent[\"s-p\"]) {\n const index = ancestorComponent[\"s-p\"].push(\n new Promise(\n (r) => hostRef.$onRenderResolve$ = () => {\n ancestorComponent[\"s-p\"].splice(index - 1, 1);\n r();\n }\n )\n );\n }\n};\nvar scheduleUpdate = (hostRef, isInitialLoad) => {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return writeTask(dispatch) ;\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = elm;\n if (!instance) {\n throw new Error(\n `Can't render component <${elm.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\`externalRuntime: true\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`\n );\n }\n let maybePromise;\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nvar enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {\n console.error(err2);\n fn();\n}) : fn();\nvar isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === \"function\";\nvar updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime(\"update\", hostRef.$cmpMeta$.$tagName$);\n const rc = elm[\"s-rc\"];\n const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n {\n const childrenPromises = (_a = elm[\"s-p\"]) != null ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n } else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n {\n {\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n } else {\n endPostUpdate();\n }\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = void 0;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n};\nvar appDidLoad = (who) => {\n {\n addHydratedFlag(doc.documentElement);\n }\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n};\nvar safeCall = (instance, method, arg, elm) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n } catch (e) {\n consoleError(e, elm);\n }\n }\n return void 0;\n};\nvar addHydratedFlag = (elm) => {\n var _a;\n return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : \"hydrated\") ;\n};\n\n// src/runtime/set-value.ts\nvar getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nvar setValue = (ref, propName, newVal, cmpMeta) => {\n const hostRef = getHostRef(ref);\n const elm = ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if (didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n {\n if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n watchMethods.map((watchMethodName) => {\n try {\n instance[watchMethodName](newVal, oldVal, propName);\n } catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n\n// src/runtime/proxy-component.ts\nvar proxyComponent = (Cstr, cmpMeta, flags) => {\n var _a, _b;\n const prototype = Cstr.prototype;\n if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {\n if (Cstr.watchers && !cmpMeta.$watchers$) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};\n if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;\n if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;\n if (flags & 1 /* isElementConstructor */ || !origGetter) {\n Object.defineProperty(prototype, memberName, {\n get() {\n {\n return origGetter ? origGetter.apply(this) : getValue(this, memberName);\n }\n },\n configurable: true,\n enumerable: true\n });\n }\n Object.defineProperty(prototype, memberName, {\n set(newValue) {\n const ref = getHostRef(this);\n if (origSetter) {\n const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n if (typeof currentValue === \"undefined\" && ref.$instanceValues$.get(memberName)) {\n newValue = ref.$instanceValues$.get(memberName);\n } else if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n {\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n }\n });\n }\n });\n {\n const attrNameToPropName = /* @__PURE__ */ new Map();\n prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {\n plt.jmp(() => {\n var _a2;\n const propName = attrNameToPropName.get(attrName);\n if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {\n newValue = this[propName];\n delete this[propName];\n } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === \"number\" && // cast type to number to avoid TS compiler issues\n this[propName] == newValue) {\n return;\n } else if (propName == null) {\n const hostRef = getHostRef(this);\n const flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {\n const elm = this;\n const instance = elm;\n const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];\n entry == null ? void 0 : entry.forEach((callbackName) => {\n if (instance[callbackName] != null) {\n instance[callbackName].call(instance, newValue, oldValue, attrName);\n }\n });\n }\n return;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\n newValue = newValue === null && typeof this[propName] === \"boolean\" ? false : newValue;\n if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {\n this[propName] = newValue;\n }\n });\n };\n Cstr.observedAttributes = Array.from(\n /* @__PURE__ */ new Set([\n ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),\n ...members.filter(([_, m]) => m[0] & 15 /* HasAttribute */).map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n })\n ])\n );\n }\n }\n return Cstr;\n};\n\n// src/runtime/initialize-component.ts\nvar initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {\n if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n {\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {\n setContentReference(elm);\n }\n }\n {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (ancestorComponent[\"s-p\"]) {\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef);\n }\n } else {\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback());\n }\n }\n endConnected();\n }\n};\nvar setContentReference = (elm) => {\n const contentRefElm = elm[\"s-cr\"] = doc.createComment(\n \"\"\n );\n contentRefElm[\"s-cn\"] = true;\n insertBefore(elm, contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n getHostRef(elm);\n }\n if (rootAppliedStyles.has(elm)) {\n rootAppliedStyles.delete(elm);\n }\n if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {\n rootAppliedStyles.delete(elm.shadowRoot);\n }\n};\nvar proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1]\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __hasHostListenerAttached: false,\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n if (!this.__hasHostListenerAttached) {\n getHostRef(this);\n this.__hasHostListenerAttached = true;\n }\n connectedCallback(this);\n if (originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n plt.raf(() => {\n var _a;\n const hostRef = getHostRef(this);\n if (((_a = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$;\n }\n if (this instanceof Node && !this.isConnected) {\n deleteHostRef(this);\n }\n });\n },\n __attachShadow() {\n {\n this.shadowRoot = this;\n }\n }\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */);\n};\n\n// src/runtime/fragment.ts\nvar Fragment = (_, children) => children;\n\n// src/runtime/nonce.ts\nvar setNonce = (nonce) => plt.$nonce$ = nonce;\n\n// src/runtime/platform-options.ts\nvar setPlatformOptions = (opts) => Object.assign(plt, opts);\n\nexport { Fragment as F, H, setNonce as a, setPlatformOptions as b, createEvent as c, getAssetPath as g, h, proxyCustomElement as p, setAssetPath as s };\n\n//# sourceMappingURL=p-5365011f.js.map","var L = Object.defineProperty;\nvar q = (n, t, r) => t in n ? L(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar h = (n, t, r) => q(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nvar F = /* @__PURE__ */ ((n) => (n[n.DEBUG = 0] = \"DEBUG\", n[n.INFO = 1] = \"INFO\", n[n.WARN = 2] = \"WARN\", n[n.ERROR = 3] = \"ERROR\", n))(F || {});\nclass pe {\n constructor(t) {\n h(this, \"logLevel\");\n h(this, \"logFormatter\");\n this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(t, r) {\n return `[${F[t]}] ${( new Date()).toISOString()}: ${r}`;\n }\n debug(t) {\n this.logLevel <= 0 && console.log(this.logFormatter(0, t));\n }\n info(t) {\n this.logLevel <= 1 && console.info(this.logFormatter(1, t));\n }\n warn(t) {\n this.logLevel <= 2 && console.warn(this.logFormatter(2, t));\n }\n error(t) {\n this.logLevel <= 3 && console.error(this.logFormatter(3, t));\n }\n log(t, r) {\n switch (t) {\n case 0:\n this.debug(r);\n break;\n case 1:\n this.info(r);\n break;\n case 2:\n this.warn(r);\n break;\n case 3:\n this.error(r);\n break;\n }\n }\n}\nfunction w(n, t, r, o) {\n return new (r || (r = Promise))(function(a, i) {\n function e(u) {\n try {\n l(o.next(u));\n } catch (s) {\n i(s);\n }\n }\n function c(u) {\n try {\n l(o.throw(u));\n } catch (s) {\n i(s);\n }\n }\n function l(u) {\n var s;\n u.done ? a(u.value) : (s = u.value, s instanceof r ? s : new r(function(g) {\n g(s);\n })).then(e, c);\n }\n l((o = o.apply(n, [])).next());\n });\n}\nfunction y(n, t) {\n var r, o, a, i, e = { label: 0, sent: function() {\n if (1 & a[0]) throw a[1];\n return a[1];\n }, trys: [], ops: [] };\n return i = { next: c(0), throw: c(1), return: c(2) }, typeof Symbol == \"function\" && (i[Symbol.iterator] = function() {\n return this;\n }), i;\n function c(l) {\n return function(u) {\n return function(s) {\n if (r) throw new TypeError(\"Generator is already executing.\");\n for (; i && (i = 0, s[0] && (e = 0)), e; ) try {\n if (r = 1, o && (a = 2 & s[0] ? o.return : s[0] ? o.throw || ((a = o.return) && a.call(o), 0) : o.next) && !(a = a.call(o, s[1])).done) return a;\n switch (o = 0, a && (s = [2 & s[0], a.value]), s[0]) {\n case 0:\n case 1:\n a = s;\n break;\n case 4:\n return e.label++, { value: s[1], done: !1 };\n case 5:\n e.label++, o = s[1], s = [0];\n continue;\n case 7:\n s = e.ops.pop(), e.trys.pop();\n continue;\n default:\n if (a = e.trys, !((a = a.length > 0 && a[a.length - 1]) || s[0] !== 6 && s[0] !== 2)) {\n e = 0;\n continue;\n }\n if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) {\n e.label = s[1];\n break;\n }\n if (s[0] === 6 && e.label < a[1]) {\n e.label = a[1], a = s;\n break;\n }\n if (a && e.label < a[2]) {\n e.label = a[2], e.ops.push(s);\n break;\n }\n a[2] && e.ops.pop(), e.trys.pop();\n continue;\n }\n s = t.call(n, e);\n } catch (g) {\n s = [6, g], o = 0;\n } finally {\n r = a = 0;\n }\n if (5 & s[0]) throw s[1];\n return { value: s[0] ? s[1] : void 0, done: !0 };\n }([l, u]);\n };\n }\n}\nvar b = { exclude: [] }, O = {}, N = { timeout: \"true\" }, v = function(n, t) {\n typeof window < \"u\" && (O[n] = t);\n}, j = function() {\n return Object.fromEntries(Object.entries(O).filter(function(n) {\n var t, r = n[0];\n return !(!((t = b == null ? void 0 : b.exclude) === null || t === void 0) && t.includes(r));\n }).map(function(n) {\n return [n[0], (0, n[1])()];\n }));\n};\nfunction M(n) {\n return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, n = Math.imul(n, 3266489909), (n ^= n >>> 16) >>> 0;\n}\nvar f = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);\nfunction p(n, t) {\n return n << t | n >>> 32 - t;\n}\nfunction I(n, t) {\n var r;\n if (t === void 0 && (t = 0), t = t ? 0 | t : 0, typeof n == \"string\" && (r = n, n = new TextEncoder().encode(r).buffer), !(n instanceof ArrayBuffer)) throw new TypeError(\"Expected key to be ArrayBuffer or string\");\n var o = new Uint32Array([t, t, t, t]);\n ((function(i, e) {\n for (var c = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * c), u = 0; u < c; u++) {\n var s = l.subarray(4 * u, 4 * (u + 1));\n s[0] = Math.imul(s[0], f[0]), s[0] = p(s[0], 15), s[0] = Math.imul(s[0], f[1]), e[0] = e[0] ^ s[0], e[0] = p(e[0], 19), e[0] = e[0] + e[1], e[0] = Math.imul(e[0], 5) + 1444728091, s[1] = Math.imul(s[1], f[1]), s[1] = p(s[1], 16), s[1] = Math.imul(s[1], f[2]), e[1] = e[1] ^ s[1], e[1] = p(e[1], 17), e[1] = e[1] + e[2], e[1] = Math.imul(e[1], 5) + 197830471, s[2] = Math.imul(s[2], f[2]), s[2] = p(s[2], 17), s[2] = Math.imul(s[2], f[3]), e[2] = e[2] ^ s[2], e[2] = p(e[2], 15), e[2] = e[2] + e[3], e[2] = Math.imul(e[2], 5) + 2530024501, s[3] = Math.imul(s[3], f[3]), s[3] = p(s[3], 18), s[3] = Math.imul(s[3], f[0]), e[3] = e[3] ^ s[3], e[3] = p(e[3], 13), e[3] = e[3] + e[0], e[3] = Math.imul(e[3], 5) + 850148119;\n }\n }))(n, o), function(i, e) {\n var c = i.byteLength / 16 | 0, l = i.byteLength % 16, u = new Uint32Array(4), s = new Uint8Array(i, 16 * c, l);\n switch (l) {\n case 15:\n u[3] = u[3] ^ s[14] << 16;\n case 14:\n u[3] = u[3] ^ s[13] << 8;\n case 13:\n u[3] = u[3] ^ s[12] << 0, u[3] = Math.imul(u[3], f[3]), u[3] = p(u[3], 18), u[3] = Math.imul(u[3], f[0]), e[3] = e[3] ^ u[3];\n case 12:\n u[2] = u[2] ^ s[11] << 24;\n case 11:\n u[2] = u[2] ^ s[10] << 16;\n case 10:\n u[2] = u[2] ^ s[9] << 8;\n case 9:\n u[2] = u[2] ^ s[8] << 0, u[2] = Math.imul(u[2], f[2]), u[2] = p(u[2], 17), u[2] = Math.imul(u[2], f[3]), e[2] = e[2] ^ u[2];\n case 8:\n u[1] = u[1] ^ s[7] << 24;\n case 7:\n u[1] = u[1] ^ s[6] << 16;\n case 6:\n u[1] = u[1] ^ s[5] << 8;\n case 5:\n u[1] = u[1] ^ s[4] << 0, u[1] = Math.imul(u[1], f[1]), u[1] = p(u[1], 16), u[1] = Math.imul(u[1], f[2]), e[1] = e[1] ^ u[1];\n case 4:\n u[0] = u[0] ^ s[3] << 24;\n case 3:\n u[0] = u[0] ^ s[2] << 16;\n case 2:\n u[0] = u[0] ^ s[1] << 8;\n case 1:\n u[0] = u[0] ^ s[0] << 0, u[0] = Math.imul(u[0], f[0]), u[0] = p(u[0], 15), u[0] = Math.imul(u[0], f[1]), e[0] = e[0] ^ u[0];\n }\n }(n, o), function(i, e) {\n e[0] = e[0] ^ i.byteLength, e[1] = e[1] ^ i.byteLength, e[2] = e[2] ^ i.byteLength, e[3] = e[3] ^ i.byteLength, e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0, e[0] = M(e[0]), e[1] = M(e[1]), e[2] = M(e[2]), e[3] = M(e[3]), e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0;\n }(n, o);\n var a = new Uint8Array(o.buffer);\n return Array.from(a).map(function(i) {\n return i.toString(16).padStart(2, \"0\");\n }).join(\"\");\n}\nfunction G(n, t) {\n return new Promise(function(r) {\n setTimeout(function() {\n return r(t);\n }, n);\n });\n}\nfunction W(n, t, r) {\n return Promise.all(n.map(function(o) {\n return Promise.race([o, G(t, r)]);\n }));\n}\nfunction V() {\n return w(this, void 0, void 0, function() {\n var n, t, r, o, a;\n return y(this, function(i) {\n switch (i.label) {\n case 0:\n return i.trys.push([0, 2, , 3]), n = j(), t = Object.keys(n), [4, W(Object.values(n), (b == null ? void 0 : b.timeout) || 1e3, N)];\n case 1:\n return r = i.sent(), o = r.filter(function(e) {\n return e !== void 0;\n }), a = {}, o.forEach(function(e, c) {\n a[t[c]] = e;\n }), [2, U(a, b.exclude || [])];\n case 2:\n throw i.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction U(n, t) {\n var r = {}, o = function(i) {\n if (n.hasOwnProperty(i)) {\n var e = n[i];\n if (typeof e != \"object\" || Array.isArray(e)) t.includes(i) || (r[i] = e);\n else {\n var c = U(e, t.map(function(l) {\n return l.startsWith(i + \".\") ? l.slice(i.length + 1) : l;\n }));\n Object.keys(c).length > 0 && (r[i] = c);\n }\n }\n };\n for (var a in n) o(a);\n return r;\n}\nfunction $(n) {\n return w(this, void 0, void 0, function() {\n var t, r;\n return y(this, function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2, , 3]), [4, V()];\n case 1:\n return t = o.sent(), r = I(JSON.stringify(t)), [2, r.toString()];\n case 2:\n throw o.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction H(n) {\n for (var t = 0, r = 0; r < n.length; ++r) t += Math.abs(n[r]);\n return t;\n}\nfunction D(n, t, r) {\n for (var o = [], a = 0; a < n[0].data.length; a++) {\n for (var i = [], e = 0; e < n.length; e++) i.push(n[e].data[a]);\n o.push(z(i));\n }\n var c = new Uint8ClampedArray(o);\n return new ImageData(c, t, r);\n}\nfunction z(n) {\n if (n.length === 0) return 0;\n for (var t = {}, r = 0, o = n; r < o.length; r++)\n t[i = o[r]] = (t[i] || 0) + 1;\n var a = n[0];\n for (var i in t) t[i] > t[a] && (a = parseInt(i, 10));\n return a;\n}\nfunction E() {\n if (typeof navigator > \"u\") return { name: \"unknown\", version: \"unknown\" };\n for (var n = navigator.userAgent, t = { Edg: \"Edge\", OPR: \"Opera\" }, r = 0, o = [/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/]; r < o.length; r++) {\n var a = o[r], i = n.match(a);\n if (i && i.groups) return { name: t[i.groups.name] || i.groups.name, version: i.groups.version };\n }\n return { name: \"unknown\", version: \"unknown\" };\n}\nv(\"audio\", function() {\n return w(this, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, new Promise(function(t, r) {\n try {\n var o = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), a = o.createBufferSource(), i = o.createOscillator();\n i.frequency.value = 1e3;\n var e, c = o.createDynamicsCompressor();\n c.threshold.value = -50, c.knee.value = 40, c.ratio.value = 12, c.attack.value = 0, c.release.value = 0.2, i.connect(c), c.connect(o.destination), i.start(), o.oncomplete = function(l) {\n e = l.renderedBuffer.getChannelData(0), t({ sampleHash: H(e), oscillator: i.type, maxChannels: o.destination.maxChannelCount, channelCountMode: a.channelCountMode });\n }, o.startRendering();\n } catch (l) {\n console.error(\"Error creating audio fingerprint:\", l), r(l);\n }\n })];\n });\n });\n});\nvar K = E().name !== \"SamsungBrowser\" ? 1 : 3, k = 280, _ = 20;\nE().name != \"Firefox\" && v(\"canvas\", function() {\n return document.createElement(\"canvas\").getContext(\"2d\"), new Promise(function(n) {\n var t = Array.from({ length: K }, function() {\n return function() {\n var r = document.createElement(\"canvas\"), o = r.getContext(\"2d\");\n if (!o) return new ImageData(1, 1);\n r.width = k, r.height = _;\n var a = o.createLinearGradient(0, 0, r.width, r.height);\n a.addColorStop(0, \"red\"), a.addColorStop(0.16666666666666666, \"orange\"), a.addColorStop(0.3333333333333333, \"yellow\"), a.addColorStop(0.5, \"green\"), a.addColorStop(0.6666666666666666, \"blue\"), a.addColorStop(0.8333333333333334, \"indigo\"), a.addColorStop(1, \"violet\"), o.fillStyle = a, o.fillRect(0, 0, r.width, r.height);\n var i = \"Random Text WMwmil10Oo\";\n o.font = \"23.123px Arial\", o.fillStyle = \"black\", o.fillText(i, -5, 15), o.fillStyle = \"rgba(0, 0, 255, 0.5)\", o.fillText(i, -3.3, 17.7), o.beginPath(), o.moveTo(0, 0), o.lineTo(2 * r.width / 7, r.height), o.strokeStyle = \"white\", o.lineWidth = 2, o.stroke();\n var e = o.getImageData(0, 0, r.width, r.height);\n return e;\n }();\n });\n n({ commonImageDataHash: I(D(t, k, _).data.toString()).toString() });\n });\n});\nvar C, Q = [\"Arial\", \"Arial Black\", \"Arial Narrow\", \"Arial Rounded MT\", \"Arimo\", \"Archivo\", \"Barlow\", \"Bebas Neue\", \"Bitter\", \"Bookman\", \"Calibri\", \"Cabin\", \"Candara\", \"Century\", \"Century Gothic\", \"Comic Sans MS\", \"Constantia\", \"Courier\", \"Courier New\", \"Crimson Text\", \"DM Mono\", \"DM Sans\", \"DM Serif Display\", \"DM Serif Text\", \"Dosis\", \"Droid Sans\", \"Exo\", \"Fira Code\", \"Fira Sans\", \"Franklin Gothic Medium\", \"Garamond\", \"Geneva\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Inconsolata\", \"Indie Flower\", \"Inter\", \"Josefin Sans\", \"Karla\", \"Lato\", \"Lexend\", \"Lucida Bright\", \"Lucida Console\", \"Lucida Sans Unicode\", \"Manrope\", \"Merriweather\", \"Merriweather Sans\", \"Montserrat\", \"Myriad\", \"Noto Sans\", \"Nunito\", \"Nunito Sans\", \"Open Sans\", \"Optima\", \"Orbitron\", \"Oswald\", \"Pacifico\", \"Palatino\", \"Perpetua\", \"PT Sans\", \"PT Serif\", \"Poppins\", \"Prompt\", \"Public Sans\", \"Quicksand\", \"Rajdhani\", \"Recursive\", \"Roboto\", \"Roboto Condensed\", \"Rockwell\", \"Rubik\", \"Segoe Print\", \"Segoe Script\", \"Segoe UI\", \"Sora\", \"Source Sans Pro\", \"Space Mono\", \"Tahoma\", \"Taviraj\", \"Times\", \"Times New Roman\", \"Titillium Web\", \"Trebuchet MS\", \"Ubuntu\", \"Varela Round\", \"Verdana\", \"Work Sans\"], J = [\"monospace\", \"sans-serif\", \"serif\"];\nfunction P(n, t) {\n if (!n) throw new Error(\"Canvas context not supported\");\n return n.font = \"72px \".concat(t), n.measureText(\"WwMmLli0Oo\").width;\n}\nfunction Y() {\n var n, t = document.createElement(\"canvas\"), r = (n = t.getContext(\"webgl\")) !== null && n !== void 0 ? n : t.getContext(\"experimental-webgl\");\n if (r && \"getParameter\" in r) try {\n var o = (r.getParameter(r.VENDOR) || \"\").toString(), a = (r.getParameter(r.RENDERER) || \"\").toString(), i = { vendor: o, renderer: a, version: (r.getParameter(r.VERSION) || \"\").toString(), shadingLanguageVersion: (r.getParameter(r.SHADING_LANGUAGE_VERSION) || \"\").toString() };\n if (!a.length || !o.length) {\n var e = r.getExtension(\"WEBGL_debug_renderer_info\");\n if (e) {\n var c = (r.getParameter(e.UNMASKED_VENDOR_WEBGL) || \"\").toString(), l = (r.getParameter(e.UNMASKED_RENDERER_WEBGL) || \"\").toString();\n c && (i.vendorUnmasked = c), l && (i.rendererUnmasked = l);\n }\n }\n return i;\n } catch {\n }\n return \"undefined\";\n}\nfunction X() {\n var n = new Float32Array(1), t = new Uint8Array(n.buffer);\n return n[0] = 1 / 0, n[0] = n[0] - n[0], t[3];\n}\nfunction Z(n, t) {\n var r = {};\n return t.forEach(function(o) {\n var a = function(i) {\n if (i.length === 0) return null;\n var e = {};\n i.forEach(function(u) {\n var s = String(u);\n e[s] = (e[s] || 0) + 1;\n });\n var c = i[0], l = 1;\n return Object.keys(e).forEach(function(u) {\n e[u] > l && (c = u, l = e[u]);\n }), c;\n }(n.map(function(i) {\n return o in i ? i[o] : void 0;\n }).filter(function(i) {\n return i !== void 0;\n }));\n a && (r[o] = a);\n }), r;\n}\nfunction ee() {\n var n = [], t = { \"prefers-contrast\": [\"high\", \"more\", \"low\", \"less\", \"forced\", \"no-preference\"], \"any-hover\": [\"hover\", \"none\"], \"any-pointer\": [\"none\", \"coarse\", \"fine\"], pointer: [\"none\", \"coarse\", \"fine\"], hover: [\"hover\", \"none\"], update: [\"fast\", \"slow\"], \"inverted-colors\": [\"inverted\", \"none\"], \"prefers-reduced-motion\": [\"reduce\", \"no-preference\"], \"prefers-reduced-transparency\": [\"reduce\", \"no-preference\"], scripting: [\"none\", \"initial-only\", \"enabled\"], \"forced-colors\": [\"active\", \"none\"] };\n return Object.keys(t).forEach(function(r) {\n t[r].forEach(function(o) {\n matchMedia(\"(\".concat(r, \": \").concat(o, \")\")).matches && n.push(\"\".concat(r, \": \").concat(o));\n });\n }), n;\n}\nfunction te() {\n if (window.location.protocol === \"https:\" && typeof window.ApplePaySession == \"function\") try {\n for (var n = window.ApplePaySession.supportsVersion, t = 15; t > 0; t--) if (n(t)) return t;\n } catch {\n return 0;\n }\n return 0;\n}\nE().name != \"Firefox\" && v(\"fonts\", function() {\n var n = this;\n return new Promise(function(t, r) {\n try {\n (function(o) {\n var a;\n w(this, void 0, void 0, function() {\n var i, e, c;\n return y(this, function(l) {\n switch (l.label) {\n case 0:\n return document.body ? [3, 2] : [4, (u = 50, new Promise(function(g) {\n return setTimeout(g, u, s);\n }))];\n case 1:\n return l.sent(), [3, 0];\n case 2:\n if ((i = document.createElement(\"iframe\")).setAttribute(\"frameBorder\", \"0\"), (e = i.style).setProperty(\"position\", \"fixed\"), e.setProperty(\"display\", \"block\", \"important\"), e.setProperty(\"visibility\", \"visible\"), e.setProperty(\"border\", \"0\"), e.setProperty(\"opacity\", \"0\"), i.src = \"about:blank\", document.body.appendChild(i), !(c = i.contentDocument || ((a = i.contentWindow) === null || a === void 0 ? void 0 : a.document))) throw new Error(\"Iframe document is not accessible\");\n return o({ iframe: c }), setTimeout(function() {\n document.body.removeChild(i);\n }, 0), [2];\n }\n var u, s;\n });\n });\n })(function(o) {\n var a = o.iframe;\n return w(n, void 0, void 0, function() {\n var i, e, c, l;\n return y(this, function(u) {\n return i = a.createElement(\"canvas\"), e = i.getContext(\"2d\"), c = J.map(function(s) {\n return P(e, s);\n }), l = {}, Q.forEach(function(s) {\n var g = P(e, s);\n c.includes(g) || (l[s] = g);\n }), t(l), [2];\n });\n });\n });\n } catch {\n r({ error: \"unsupported\" });\n }\n });\n}), v(\"hardware\", function() {\n return new Promise(function(n, t) {\n var r = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, o = window.performance && window.performance.memory ? window.performance.memory : 0;\n n({ videocard: Y(), architecture: X(), deviceMemory: r.toString() || \"undefined\", jsHeapSizeLimit: o.jsHeapSizeLimit || 0 });\n });\n}), v(\"locales\", function() {\n return new Promise(function(n) {\n n({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });\n });\n}), v(\"permissions\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n return C = (b == null ? void 0 : b.permissions_to_check) || [\"accelerometer\", \"accessibility\", \"accessibility-events\", \"ambient-light-sensor\", \"background-fetch\", \"background-sync\", \"bluetooth\", \"camera\", \"clipboard-read\", \"clipboard-write\", \"device-info\", \"display-capture\", \"gyroscope\", \"geolocation\", \"local-fonts\", \"magnetometer\", \"microphone\", \"midi\", \"nfc\", \"notifications\", \"payment-handler\", \"persistent-storage\", \"push\", \"speaker\", \"storage-access\", \"top-level-storage-access\", \"window-management\", \"query\"], n = Array.from({ length: (b == null ? void 0 : b.retries) || 3 }, function() {\n return function() {\n return w(this, void 0, void 0, function() {\n var r, o, a, i, e;\n return y(this, function(c) {\n switch (c.label) {\n case 0:\n r = {}, o = 0, a = C, c.label = 1;\n case 1:\n if (!(o < a.length)) return [3, 6];\n i = a[o], c.label = 2;\n case 2:\n return c.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];\n case 3:\n return e = c.sent(), r[i] = e.state.toString(), [3, 5];\n case 4:\n return c.sent(), [3, 5];\n case 5:\n return o++, [3, 1];\n case 6:\n return [2, r];\n }\n });\n });\n }();\n }), [2, Promise.all(n).then(function(r) {\n return Z(r, C);\n })];\n });\n });\n}), v(\"plugins\", function() {\n var n = [];\n if (navigator.plugins) for (var t = 0; t < navigator.plugins.length; t++) {\n var r = navigator.plugins[t];\n n.push([r.name, r.filename, r.description].join(\"|\"));\n }\n return new Promise(function(o) {\n o({ plugins: n });\n });\n}), v(\"screen\", function() {\n return new Promise(function(n) {\n n({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });\n });\n}), v(\"system\", function() {\n return new Promise(function(n) {\n var t = E();\n n({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: t.name, version: t.version }, applePayVersion: te() });\n });\n});\nvar m, ne = E().name !== \"SamsungBrowser\" ? 1 : 3, d = null;\nv(\"webgl\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n typeof document < \"u\" && ((m = document.createElement(\"canvas\")).width = 200, m.height = 100, d = m.getContext(\"webgl\"));\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n return n = Array.from({ length: ne }, function() {\n return function() {\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n var r = `\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `, o = `\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n `, a = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);\n if (!a || !i) throw new Error(\"Failed to create shaders\");\n if (d.shaderSource(a, r), d.shaderSource(i, o), d.compileShader(a), !d.getShaderParameter(a, d.COMPILE_STATUS)) throw new Error(\"Vertex shader compilation failed: \" + d.getShaderInfoLog(a));\n if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error(\"Fragment shader compilation failed: \" + d.getShaderInfoLog(i));\n var e = d.createProgram();\n if (!e) throw new Error(\"Failed to create shader program\");\n if (d.attachShader(e, a), d.attachShader(e, i), d.linkProgram(e), !d.getProgramParameter(e, d.LINK_STATUS)) throw new Error(\"Shader program linking failed: \" + d.getProgramInfoLog(e));\n d.useProgram(e);\n for (var c = 137, l = new Float32Array(4 * c), u = 2 * Math.PI / c, s = 0; s < c; s++) {\n var g = s * u;\n l[4 * s] = 0, l[4 * s + 1] = 0, l[4 * s + 2] = Math.cos(g) * (m.width / 2), l[4 * s + 3] = Math.sin(g) * (m.height / 2);\n }\n var B = d.createBuffer();\n d.bindBuffer(d.ARRAY_BUFFER, B), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);\n var x = d.getAttribLocation(e, \"position\");\n d.enableVertexAttribArray(x), d.vertexAttribPointer(x, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, m.width, m.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * c);\n var T = new Uint8ClampedArray(m.width * m.height * 4);\n return d.readPixels(0, 0, m.width, m.height, d.RGBA, d.UNSIGNED_BYTE, T), new ImageData(T, m.width, m.height);\n } catch {\n return new ImageData(1, 1);\n } finally {\n d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));\n }\n }();\n }), [2, { commonImageHash: I(D(n, m.width, m.height).data.toString()).toString() }];\n } catch {\n return [2, { webgl: \"unsupported\" }];\n }\n return [2];\n });\n });\n});\nvar S = function(n, t, r, o) {\n for (var a = (r - t) / o, i = 0, e = 0; e < o; e++)\n i += n(t + (e + 0.5) * a);\n return i * a;\n};\nv(\"math\", function() {\n return w(void 0, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, { acos: Math.acos(0.5), asin: S(Math.asin, -1, 1, 97), atan: S(Math.atan, -1, 1, 97), cos: S(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: S(Math.sin, -Math.PI, Math.PI, 97), sinh: S(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: S(Math.tan, 0, 2 * Math.PI, 97), tanh: S(Math.tanh, -9 / 7, 7 / 9, 97) }];\n });\n });\n});\nconst re = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet A = (n = 21) => {\n let t = \"\", r = crypto.getRandomValues(new Uint8Array(n |= 0));\n for (; n--; )\n t += re[r[n] & 63];\n return t;\n};\nclass R {\n constructor(t) {\n h(this, \"config\");\n this.config = t;\n }\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass oe extends R {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAdsForSearchParams(t) {\n if (!this.config.admSub)\n return console.error(\"No admSub specified in config.\"), [];\n const o = `https://demofeed.is.ampfeed.com/is?${new URLSearchParams({\n partner: \"demofeed\",\n sub1: this.config.admSub,\n qt: t.searchTerm,\n v: \"2.0\",\n rfr: \"searchcraft.io\",\n \"results-ta\": `${this.config.admTextAdQuantity || 0}`,\n \"results-pa\": `${this.config.admProductAdQuantity || 0}`\n }).toString()}`, i = await (await fetch(o, { method: \"GET\" })).json(), e = i.product_ads.map(\n (u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-product-ad\",\n admAd: u\n })\n ), c = i.text_ads.map((u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-text-ad\",\n admAd: u\n }));\n return e.concat(c);\n }\n}\nclass ie extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass ae extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nconst se = 500;\nclass ue {\n constructor(t, r, o) {\n h(this, \"measureRequestTimeout\");\n h(this, \"measureRequestsBatched\", []);\n h(this, \"config\");\n h(this, \"sdkInfo\");\n h(this, \"userId\");\n h(this, \"sessionId\");\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n h(this, \"sendMeasureEvent\", (t, r = {}, o = {}) => {\n const a = {\n event_name: t,\n properties: {\n searchcraft_index_names: this.config.index,\n session_id: this.sessionId,\n ...r\n },\n user: {\n ...this.measureRequestUser,\n ...o\n }\n };\n this.measureRequestsBatched.push(a), clearTimeout(this.measureRequestTimeout), this.measureRequestTimeout = setTimeout(async () => {\n const i = JSON.stringify({ items: this.measureRequestsBatched }), e = `${this.baseMeasureUrl}/batch`;\n try {\n const c = await fetch(e, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: this.config.readKey,\n \"X-Sc-User-Id\": this.userId\n },\n body: i,\n keepalive: !0\n });\n if (!c.ok)\n throw new Error(\n `Failed to send request: ${c.status} ${c.statusText}`\n );\n this.measureRequestsBatched = [];\n return;\n } catch (c) {\n throw console.error(\"Error sending MeasureRequest:\", c), c;\n }\n }, se);\n });\n this.config = t, this.sdkInfo = r, this.userId = o, this.sessionId = A(), this.sendMeasureEvent(\"sdk_initialized\");\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || \"en-US\",\n os: navigator.userAgent.includes(\"Windows\") ? \"Windows\" : navigator.userAgent.includes(\"Mac\") ? \"Mac\" : navigator.userAgent.includes(\"Linux\") ? \"Linux\" : \"Unknown\",\n platform: navigator.platform || \"Unknown\",\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || \"Unknown\"\n };\n }\n}\nfunction ce(n) {\n const t = [];\n let r = \"should\";\n return n.facetPathsForIndexFields && Object.keys(n.facetPathsForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.facetPathsForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.rangeValueForIndexFields && Object.keys(n.rangeValueForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.rangeValueForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.sort === \"desc\" ? n.order_by = \"date_published\" : n.order_by = \"\", t.push({\n occur: r,\n // Valid, as 'occur' is a required property in QueryItem\n [n.mode]: { ctx: n.searchTerm }\n // Ensure dynamic mode is inside queryType\n }), t;\n}\nconst de = (n) => n.endsWith(\"/\") ? n.slice(0, -1) : n, le = (n) => {\n let t = \"\";\n if (t = n.trim(), t = t.replace(/[‘’“”]/g, (o) => ({\n \"‘\": \"'\",\n \"’\": \"'\",\n \"“\": '\"',\n \"”\": '\"'\n })[o] || o), (t.match(/\"/g) || []).length % 2 !== 0)\n throw new Error(\n \"The search term contains an uneven number of quote characters.\"\n );\n return t;\n};\nclass he {\n constructor(t, r, o) {\n h(this, \"config\");\n h(this, \"userId\");\n h(this, \"parent\");\n /**\n * Performs a search operation.\n * @param {SearchParams} searchParams - The parameters for the search.\n */\n h(this, \"getSearchResponse\", async (t) => {\n var o, a;\n const r = le(t.searchTerm);\n (o = this.parent.measureClient) == null || o.sendMeasureEvent(\"search_requested\", {\n search_term: r\n }), this.parent.emitEvent(\"query_submitted\", {\n name: \"query_submitted\",\n data: {\n searchTerm: r\n }\n });\n try {\n const i = {\n query: ce(t),\n offset: t.offset || 0,\n // Default to 0 (first page) if not provided\n limit: t.limit || this.config.searchResultsPerPage || 20\n // Default to 20 if not provided\n };\n t.order_by && (i.order_by = t.order_by, i.sort = t.sort === \"desc\" || t.sort === \"asc\" ? t.sort : \"asc\");\n const e = {\n method: \"POST\",\n headers: {\n Authorization: this.config.readKey,\n \"Content-Type\": \"application/json\",\n \"X-Sc-User-Id\": this.userId\n },\n body: JSON.stringify(i)\n }, c = await fetch(this.baseSearchUrl, e);\n if (!c.ok)\n throw new Error(\n `Error: ${c.statusText} (Status: ${c.status})`\n );\n const l = await c.json();\n return (a = this.parent.measureClient) == null || a.sendMeasureEvent(\"search_response_received\", {\n search_term: r,\n number_of_documents: l.data.count\n }), l;\n } catch (i) {\n throw console.error(\"Error parsing response:\", i), i;\n }\n });\n this.parent = t, this.config = r, this.userId = o;\n }\n /**\n * Getter for the base url used by the /search endpoint.\n */\n get baseSearchUrl() {\n return `${this.config.endpointURL}/index/${this.config.index.join(\",\")}/search`;\n }\n}\nclass ge {\n constructor(t, r) {\n h(this, \"config\");\n h(this, \"measureClient\");\n h(this, \"searchClient\");\n h(this, \"adClient\");\n h(this, \"userId\");\n h(this, \"requestTimeout\");\n h(this, \"subscriptionEvents\", {});\n /**\n * Gets items from the SearchClient and the AdClient.\n */\n h(this, \"getItems\", (t, r, o) => {\n const a = async () => {\n (async () => {\n var c, l;\n const i = await ((c = this == null ? void 0 : this.searchClient) == null ? void 0 : c.getSearchResponse(t));\n if (!i)\n throw new Error(\"Search client was not initialized.\");\n const e = (l = i.data.hits || []) == null ? void 0 : l.map((u) => u.doc).filter((u) => !!u).map((u) => ({\n type: \"SearchDocument\",\n id: A(),\n document: u\n }));\n e.length === 0 && this.emitEvent(\"no_results_returned\", {\n name: \"no_results_returned\"\n }), r(i, e);\n })(), (async () => {\n if (this.adClient) {\n const i = await this.adClient.getAdsForSearchParams(t);\n o(i);\n }\n })();\n };\n clearTimeout(this.requestTimeout), this.config.searchDebounceDelay ? this.requestTimeout = setTimeout(\n a,\n this.config.searchDebounceDelay\n ) : a();\n });\n if (!t.endpointURL || !t.index || !t.readKey)\n throw new Error(\n \"Endpoint URL, Index value(s), and Read Key must be provided\"\n );\n this.config = {\n ...t,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: de(t.endpointURL)\n }, this.userId = \"\", this.initClients(this.config, r), this.initInputForms(), this.startObservingMutations();\n }\n initInputForms() {\n const t = document.querySelectorAll(\n \"searchcraft-input-form\"\n );\n setTimeout(() => {\n t.forEach((r) => {\n r.core = this;\n });\n }, 40);\n }\n /**\n * When changes happen in the DOM, we want to link any input forms found to the instance of the core.\n */\n startObservingMutations() {\n new MutationObserver((r, o) => {\n let a = !1;\n for (const i of r)\n i.type === \"childList\" && i.addedNodes.forEach((e) => {\n e.nodeType === 1 && e.className.toLowerCase() === \"searchcraft-input-form\" && (a = !0);\n });\n a && this.initInputForms();\n }).observe(document.body, { childList: !0, subtree: !0 });\n }\n initClients(t, r) {\n setTimeout(async () => {\n let o = this.config.userId;\n switch (o || (o = await $()), this.measureClient = new ue(t, r, o), this.searchClient = new he(this, t, o), t.adSource) {\n case \"adMarketplace\":\n this.adClient = new oe(t);\n break;\n case \"Nativo\":\n this.adClient = new ae(t);\n break;\n case \"Custom\":\n this.adClient = new ie(t);\n break;\n }\n }, 300);\n }\n emitEvent(t, r) {\n var o;\n (o = this.subscriptionEvents[t]) == null || o.forEach((a) => {\n a(r);\n });\n }\n subscribe(t, r) {\n return this.subscriptionEvents[t] || (this.subscriptionEvents[t] = []), this.subscriptionEvents[t].push(\n r\n ), () => {\n this.subscriptionEvents[t] = this.subscriptionEvents[t].filter((o) => o !== r);\n };\n }\n}\n\nvar zustand = {};\n\nvar vanilla$1 = {};\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nvanilla$1.createStore = createStore;\n\nvar react$1 = {};\n\nvar react = {exports: {}};\n\nvar react_production = {};\n\n/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction noop() {}\nreact_production.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nreact_production.Component = Component;\nreact_production.Fragment = REACT_FRAGMENT_TYPE;\nreact_production.Profiler = REACT_PROFILER_TYPE;\nreact_production.PureComponent = PureComponent;\nreact_production.StrictMode = REACT_STRICT_MODE_TYPE;\nreact_production.Suspense = REACT_SUSPENSE_TYPE;\nreact_production.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nreact_production.act = function () {\n throw Error(\"act(...) is not supported in production builds of React.\");\n};\nreact_production.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nreact_production.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nreact_production.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nreact_production.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nreact_production.createRef = function () {\n return { current: null };\n};\nreact_production.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nreact_production.isValidElement = isValidElement;\nreact_production.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nreact_production.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nreact_production.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n};\nreact_production.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nreact_production.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nreact_production.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nreact_production.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nreact_production.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nreact_production.useDebugValue = function () {};\nreact_production.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nreact_production.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nreact_production.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nreact_production.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nreact_production.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nreact_production.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nreact_production.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nreact_production.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nreact_production.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nreact_production.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nreact_production.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nreact_production.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nreact_production.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nreact_production.version = \"19.0.0\";\n\n{\n react.exports = react_production;\n}\n\nvar React = react.exports;\nvar vanilla = vanilla$1;\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = vanilla.createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nreact$1.create = create;\nreact$1.useStore = useStore;\n\n(function (exports) {\n\nvar vanilla = vanilla$1;\nvar react = react$1;\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n}(zustand));\n\nconst initialSearchcraftStateValues = {\n adClientResponseItems: [],\n core: undefined,\n logger: undefined,\n facetPathsForIndexFields: {},\n isPopoverVisible: false,\n isSearchInProgress: false,\n searchTerm: '',\n rangeValueForIndexFields: {},\n searchMode: 'fuzzy',\n searchClientResponseItems: [],\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: 'asc',\n};\nconst searchcraftStore = zustand.createStore((set, get) => {\n const functions = {\n addFacetPathsForIndexField: (data) => set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [data.fieldName]: data,\n },\n })),\n addRangeValueForIndexField: (data) => set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [data.fieldName]: data,\n },\n })),\n getSearchcraftInstance: () => {\n const { core } = get();\n return core;\n },\n initialize: (searchcraftInstance, debug = false) => {\n const core = searchcraftInstance;\n const logger = debug\n ? new pe({ logLevel: F.DEBUG })\n : undefined;\n set({\n core,\n logger,\n searchResultsPerPage: core.config.searchResultsPerPage || 20,\n });\n },\n removeFacetPathsForIndexField: (fieldName) => set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n };\n }),\n removeRangeValueForIndexField: (fieldName) => set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetFacetPaths: () => {\n set({\n facetPathsForIndexFields: {},\n });\n },\n search: async () => {\n const state = get();\n state.logger?.log(F.INFO, `Starting search with search term: \"${state.searchTerm}\"`);\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n if (!state.searchTerm.trim()) {\n state.logger?.log(F.INFO, 'No search request was made: search term was empty.');\n set({\n searchClientResponseItems: [],\n searchResultsCount: 0,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n set({ isSearchInProgress: true });\n const handleSearchcraftResponse = (response, items) => {\n const facetsFromResponse = response.data.facets;\n set((state) => {\n return {\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken || 0,\n searchResultsPage: \n // reset to first page when response count changes\n response.data.count === state.searchResultsCount\n ? state.searchResultsPage\n : 1,\n searchResultsCount: response.data.count || 0,\n };\n });\n if (facetsFromResponse) {\n set({ searchResponseFacetPrime: facetsFromResponse });\n }\n state.logger?.log(F.DEBUG, `Search results: ${JSON.stringify(items)}`);\n state.logger?.log(F.DEBUG, `Facets from response: ${JSON.stringify(facetsFromResponse)}`);\n };\n const handleAdResponse = (adClientResponseItems) => {\n set({ adClientResponseItems });\n };\n state.core.getItems({\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n }, handleSearchcraftResponse, handleAdResponse);\n },\n setPopoverVisibility: (isVisible) => {\n set({\n isPopoverVisible: isVisible,\n });\n },\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortType: (type) => set({ sortType: type }),\n setSearchTerm: (searchTerm) => {\n const { core } = get();\n if (core && searchTerm.length === 0) {\n core.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode, and facet paths.\n */\n set({\n searchTerm,\n facetPathsForIndexFields: {},\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: 'asc',\n }),\n });\n },\n setSearchClientResponseItems: (items) => set({ searchClientResponseItems: items }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search();\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search();\n },\n };\n const stateObject = {\n ...initialSearchcraftStateValues,\n ...functions,\n };\n return stateObject;\n});\n\nexport { ge as g, searchcraftStore as s };\n\n//# sourceMappingURL=p-6d8b0ead.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar purify = {exports: {}};\n\n/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\n(function (module, exports) {\n(function (global, factory) {\n module.exports = factory() ;\n})(commonjsGlobal, (function () {\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const arraySplice = unapply(Array.prototype.splice);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n /**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n /**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n });\n\n /* eslint-disable @typescript-eslint/indent */\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n const _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n\n}(purify));\n\nconst DOMPurify = purify.exports;\n\nconst urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\n\nlet nanoid = (size = 21) => {\n let id = '';\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)));\n while (size--) {\n id += urlAlphabet[bytes[size] & 63];\n }\n return id\n};\n\nconst SearchcraftPopoverListItemAd = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItemAd extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n adSource = 'Custom';\n adClientResponseItem;\n searchTerm;\n unsubscribe = () => { };\n core;\n adContainerId = nanoid();\n connectedCallback() {\n const currentState = searchcraftStore.getState();\n this.core = currentState.core;\n this.searchTerm = currentState.searchTerm;\n // Subscribes to store changes (for search term).\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n this.searchTerm = state.searchTerm;\n });\n // Sends impression request if its an adm ad.\n if (this.adClientResponseItem?.adSource === 'adMarketplace') {\n const item = this.adClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n // Emits ad_container_rendered event.\n this.core?.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: this.adContainerId,\n adSource: this.adSource,\n searchTerm: this.searchTerm,\n },\n });\n }\n disconnectedCallback() {\n this.unsubscribe();\n }\n renderADMAd() {\n const item = this.adClientResponseItem;\n if (!item.admAd) {\n return;\n }\n return (h(\"a\", { class: 'searchcraft-adm-ad', href: item.admAd.click_url }, item.admAd.image_url && (h(\"div\", { class: 'searchcraft-adm-ad-image-wrapper' }, h(\"img\", { alt: item.admAd.term || 'image', src: item.admAd.image_url, class: 'searchcraft-adm-ad-image' }))), h(\"div\", { class: 'searchcraft-adm-ad-info-wrapper' }, h(\"p\", { class: 'searchcraft-adm-ad-title' }, item.admAd.term), item.admAd.price && (h(\"p\", { class: 'searchcraft-adm-ad-subtitle' }, item.admAd.price)))));\n }\n renderCustomAd() {\n const templateRenderFunction = this.core?.config?.customAdTemplate;\n const containerId = `searchcraft-custom-ad-${this.adContainerId}`;\n let containerInnerHTML = '<p>Custom Ad Placeholder</p>';\n if (templateRenderFunction) {\n containerInnerHTML = templateRenderFunction({\n searchTerm: this.searchTerm,\n adContainerId: this.adContainerId,\n });\n }\n return (h(\"div\", { class: 'searchcraft-custom-ad', id: containerId, \"data-searchcraft-ad-container-id\": this.adContainerId, innerHTML: DOMPurify.sanitize(containerInnerHTML) }));\n }\n renderNativoAd() {\n return h(\"div\", { class: 'searchcraft-nativo-ad' });\n }\n render() {\n switch (this.adSource) {\n case 'adMarketplace':\n return this.renderADMAd();\n case 'Custom':\n return this.renderCustomAd();\n case 'Nativo':\n return this.renderNativoAd();\n default:\n return;\n }\n }\n}, [0, \"searchcraft-ad\", {\n \"adSource\": [1, \"ad-source\"],\n \"adClientResponseItem\": [16],\n \"searchTerm\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-ad\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListItemAd);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItemAd as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-05872320.js.map","/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n *\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nfunction getDocumentValueFromSearchResultMapping(document, mapping) {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n // TODO: Use fieldNameDetails.DateFormatOptions to format the date\n valueFound = getFormattedTimeFromNow(valueFound);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(fieldNameDetails.numberFormatLocale, fieldNameDetails.numberFormatOptions).format(valueFound * (fieldNameDetails.numberScale || 1));\n break;\n }\n }\n }\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\nfunction getMillis(unit) {\n const millisInHour = 60 * 60 * 1000;\n const millisInDay = 24 * millisInHour;\n const millisInMonth = 30 * millisInDay;\n const millisInYear = 365 * millisInDay;\n switch (unit) {\n case 'hour':\n return millisInHour;\n case 'day':\n return millisInDay;\n case 'month':\n return millisInMonth;\n case 'year':\n return millisInYear;\n default:\n return 3600000;\n }\n}\nfunction formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n/**\n * Given a timestamp value, returns a formatted time string for the time\n * since now.\n *\n * @param timestamp\n * @returns {string} Formatted string value\n */\nfunction getFormattedTimeFromNow(timestamp) {\n const now = new Date();\n const inputTime = new Date(timestamp);\n const diffInSeconds = Math.floor((now.getTime() - inputTime.getTime()) / 1000);\n const minutes = Math.floor(diffInSeconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const years = Math.floor(days / 365);\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n if (hours < 24) {\n return `${hours}h ago`;\n }\n if (days < 365) {\n return `${days}d ago`;\n }\n return `${years}y ago`;\n}\n\nexport { getDocumentValueFromSearchResultMapping as a, formatNumberWithCommas as f, getMillis as g };\n\n//# sourceMappingURL=p-6104fe5d.js.map","import { p as proxyCustomElement, H, h, F as Fragment } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { a as getDocumentValueFromSearchResultMapping } from './p-6104fe5d.js';\n\nconst SearchcraftBaseSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftBaseSearchResult extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n item;\n searchResultMappings;\n /**\n * Where to open the link for the containing element.\n */\n containerTarget = '_blank';\n /**\n * The relationship between the current document and the link for the containing element.\n */\n containerRel;\n /**\n * Where to open the link for the button rendered when containerHref is not present.\n */\n buttonTarget = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present.\n */\n buttonRel;\n /**\n * The placement of the image.\n */\n imagePlacement = 'right';\n /**\n * A custom styles object.\n */\n customStyles;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n documentPosition = 0;\n titleContent;\n subtitleContent;\n bodyContent;\n footerContent;\n buttonLabel;\n buttonHref;\n containerHref;\n imageSrc;\n imageAlt;\n searchcraftStore = searchcraftStore.getState();\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n }\n mapValuesFromDocument(document) {\n this.titleContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.title);\n this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.subtitle);\n this.bodyContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.body);\n this.containerHref = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.containerHref);\n this.buttonHref = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.buttonHref);\n this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.imageSource);\n this.footerContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.footer);\n }\n handleLinkClick = () => {\n const searchcraft = this.searchcraftStore.getSearchcraftInstance();\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = this.searchcraftStore.searchTerm;\n const number_of_documents = this.searchcraftStore.searchClientResponseItems.length;\n searchcraft.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n parseStyles = () => {\n if (this.customStyles) {\n try {\n return JSON.parse(this.customStyles);\n }\n catch (error) {\n console.error('Error parsing custom styles:', error);\n return {};\n }\n }\n return {};\n };\n render() {\n const styles = this.parseStyles();\n const imageContainer = this.imageSrc && (h(\"img\", { alt: this.imageAlt, class: 'searchcraft-search-result-image', src: this.imageSrc, style: styles.image || {} }));\n const contentContainer = (h(Fragment, null, this.imageSrc && this.imagePlacement === 'left' && imageContainer, h(\"div\", { class: 'searchcraft-base-search-result-content-container' }, this.titleContent && (h(\"h2\", { class: 'searchcraft-base-search-result-title', style: styles.title || {} }, this.titleContent)), this.subtitleContent && (h(\"h3\", { class: 'searchcraft-base-search-result-subtitle', style: styles.subtitle || {} }, this.subtitleContent)), this.bodyContent && (h(\"p\", { class: 'searchcraft-base-search-result-body-content', style: styles.primaryContent || {} }, this.bodyContent)), this.footerContent && (h(\"p\", { class: 'searchcraft-base-search-result-footer-content', style: styles.secondaryContent || {} }, this.footerContent)), this.buttonHref && !this.containerHref && this.buttonLabel && (h(\"a\", { class: 'searchcraft-search-result-button', href: this.buttonHref, style: styles.button || {}, target: this.buttonTarget, rel: this.buttonRel }, this.buttonLabel))), this.imageSrc && this.imagePlacement === 'right' && imageContainer));\n /** Render as an anchor tag if the containerHref prop is present. */\n if (this.containerHref) {\n return (h(\"a\", { class: 'searchcraft-search-result-container', onClick: this.handleLinkClick, href: this.containerHref, rel: this.containerRel, style: styles.container || {}, tabindex: '0', target: this.containerTarget }, contentContainer));\n }\n /** Render as a div if no href prop. */\n return (h(\"div\", { class: 'searchcraft-search-result-container', style: styles.container || {} }, contentContainer));\n }\n}, [0, \"searchcraft-base-search-result\", {\n \"item\": [16],\n \"searchResultMappings\": [16],\n \"containerTarget\": [1, \"container-target\"],\n \"containerRel\": [1, \"container-rel\"],\n \"buttonTarget\": [1, \"button-target\"],\n \"buttonRel\": [1, \"button-rel\"],\n \"imagePlacement\": [1, \"image-placement\"],\n \"customStyles\": [1, \"custom-styles\"],\n \"documentPosition\": [2, \"document-position\"],\n \"titleContent\": [32],\n \"subtitleContent\": [32],\n \"bodyContent\": [32],\n \"footerContent\": [32],\n \"buttonLabel\": [32],\n \"buttonHref\": [32],\n \"containerHref\": [32],\n \"imageSrc\": [32],\n \"imageAlt\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-base-search-result\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-base-search-result\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftBaseSearchResult);\n }\n break;\n } });\n}\n\nexport { SearchcraftBaseSearchResult as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-cd9ba361.js.map","function parseCustomStyles(styles) {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n }\n catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\nfunction serializeStyles(styles) {\n try {\n return JSON.stringify(styles);\n }\n catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\n}\n\nexport { parseCustomStyles as p, serializeStyles as s };\n\n//# sourceMappingURL=p-d9551738.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\n\nconst SearchcraftErrorMessage = /*@__PURE__*/ proxyCustomElement(class SearchcraftErrorMessage extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The error message.\n */\n errorMessage;\n render() {\n return (h(\"p\", { key: 'dc97bb66da10a98fca027f928deaaf80d945417b', class: 'searchcraft-error-message' }, this.errorMessage || 'Search term is required.'));\n }\n}, [0, \"searchcraft-error-message\", {\n \"errorMessage\": [1, \"error-message\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-error-message\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftErrorMessage);\n }\n break;\n } });\n}\n\nexport { SearchcraftErrorMessage as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-0e393fe1.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { s as serializeStyles } from './p-d9551738.js';\nimport { d as defineCustomElement$4 } from './p-05872320.js';\nimport { d as defineCustomElement$3 } from './p-cd9ba361.js';\nimport { d as defineCustomElement$2 } from './p-0e393fe1.js';\n\nconst SearchcraftBaseSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftBaseSearchResults extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * A custom styles object.\n */\n customStylesForResults;\n /**\n * Formats the content rendered for each result.\n */\n searchResultMappings;\n /**\n * The placement of the image for each result.\n */\n resultImagePlacement = 'right';\n /**\n * The label for the button rendered when containerHref is not present for each result.\n */\n buttonLabel;\n /**\n * Where to open the link for the button rendered when containerHref is not present for each result.\n */\n buttonTarget = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present for each result.\n */\n buttonRel;\n /**\n * Where to open the link for the containing element for each result.\n */\n containerTarget = '_blank';\n /**\n * The relationship between the current document and the link for the containing element for each result.\n */\n containerRel;\n searchTerm = '';\n searchClientResponseItems = [];\n adClientResponseItems = [];\n searchResultsPerPage;\n searchResultsPage;\n isSearchInProgress = false;\n config;\n unsubscribe = () => { };\n get serializedStyles() {\n let serializedStyles = '';\n if (this.customStylesForResults) {\n serializedStyles =\n typeof this.customStylesForResults === 'string'\n ? this.customStylesForResults\n : serializeStyles(this.customStylesForResults);\n }\n return serializedStyles;\n }\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => this.handleStateChange(state));\n const currentState = searchcraftStore.getState();\n this.searchClientResponseItems = currentState.searchClientResponseItems;\n this.searchTerm = currentState.searchTerm;\n this.config = currentState.core?.config;\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleStateChange(state) {\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.config = state.core?.config;\n this.isSearchInProgress = state.isSearchInProgress;\n }\n renderEmptyState() {\n return (h(\"div\", { class: 'searchcraft-search-results-empty-state-container' }, h(\"slot\", { name: 'empty-search' })));\n }\n renderNoResultsFoundState() {\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, h(\"div\", { class: 'searchcraft-search-results-error-message-container' }, h(\"searchcraft-error-message\", { \"error-message\": `No search results found for \"${this.searchTerm}\" query` }))));\n }\n renderWithADMAds() {\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { adSource: 'adMarketplace', adClientResponseItem: item, key: item.id }))), this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-base-search-result\", { key: item.id, \"custom-styles\": this.serializedStyles, \"image-placement\": this.resultImagePlacement, \"container-rel\": this.containerRel, \"container-target\": this.containerTarget, \"button-label\": this.buttonLabel || 'View more', \"button-rel\": this.buttonRel, \"button-target\": this.buttonTarget, \"document-position\": this.searchResultsPerPage * this.searchResultsPage + index, searchResultMappings: this.searchResultMappings, item: item })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdStartQuantity || 0;\n const adEndQuantity = this.config?.customAdEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${item.id}-ad-${n}` }));\n }\n }\n itemsToRender.push(h(\"searchcraft-base-search-result\", { key: item.id, \"custom-styles\": this.serializedStyles, \"image-placement\": this.resultImagePlacement, \"container-rel\": this.containerRel, \"container-target\": this.containerTarget, \"button-label\": this.buttonLabel || 'View more', \"button-rel\": this.buttonRel, \"button-target\": this.buttonTarget, \"document-position\": this.searchResultsPerPage * this.searchResultsPage + index, searchResultMappings: this.searchResultMappings, item: item }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, itemsToRender));\n }\n renderWithNoAds() {\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-base-search-result\", { key: item.id, \"custom-styles\": this.serializedStyles, \"image-placement\": this.resultImagePlacement, \"container-rel\": this.containerRel, \"container-target\": this.containerTarget, \"button-label\": this.buttonLabel || 'View more', \"button-rel\": this.buttonRel, \"button-target\": this.buttonTarget, \"document-position\": this.searchResultsPerPage * this.searchResultsPage + index, searchResultMappings: this.searchResultMappings, item: item })))));\n }\n render() {\n if (this.searchTerm.trim() === '') {\n return this.renderEmptyState();\n }\n if (this.searchTerm.length > 0 &&\n this.searchClientResponseItems.length === 0 &&\n !this.isSearchInProgress) {\n return this.renderNoResultsFoundState();\n }\n switch (this.config?.adSource || 'None') {\n case 'adMarketplace':\n return this.renderWithADMAds();\n case 'Custom':\n return this.renderWithCustomAds();\n default:\n return this.renderWithNoAds();\n }\n }\n}, [4, \"searchcraft-base-search-results\", {\n \"customStylesForResults\": [1, \"custom-styles-for-results\"],\n \"searchResultMappings\": [16],\n \"resultImagePlacement\": [1, \"result-image-placement\"],\n \"buttonLabel\": [1, \"button-label\"],\n \"buttonTarget\": [1, \"button-target\"],\n \"buttonRel\": [1, \"button-rel\"],\n \"containerTarget\": [1, \"container-target\"],\n \"containerRel\": [1, \"container-rel\"],\n \"searchTerm\": [32],\n \"searchClientResponseItems\": [32],\n \"adClientResponseItems\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsPage\": [32],\n \"isSearchInProgress\": [32],\n \"config\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-base-search-results\", \"searchcraft-ad\", \"searchcraft-base-search-result\", \"searchcraft-error-message\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-base-search-results\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftBaseSearchResults$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-base-search-result\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftBaseSearchResults = SearchcraftBaseSearchResults$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftBaseSearchResults, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-base-search-results.js.map","var classnames = {exports: {}};\n\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\n(function (module) {\n/* global define */\n\n(function () {\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n}(classnames));\n\nconst classNames = classnames.exports;\n\nexport { classNames as c };\n\n//# sourceMappingURL=p-5cdc6210.js.map","import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButton extends H {\n constructor() {\n super();\n this.__registerHost();\n this.buttonClick = createEvent(this, \"buttonClick\", 7);\n }\n /**\n * Controls the visual representation of the button.\n */\n hierarchy = 'primary';\n /**\n * Whether the button is disabled.\n */\n disabled = false;\n /**\n * The icon element.\n */\n icon;\n /**\n * Should the button only display an icon.\n */\n iconOnly = false;\n /**\n * The position of the icon.\n */\n iconPosition = 'left';\n /**\n * The label for the button.\n */\n label = 'Search';\n /**\n * The type of the button.\n */\n type = 'button';\n /**\n * The event fired when the button is clicked.\n */\n buttonClick;\n handleButtonClick = () => {\n this.buttonClick.emit();\n };\n render() {\n return (h(\"button\", { key: 'ff883b930d03da6cbfb40badd3be1de0a873f853', \"aria-label\": this.label, class: classNames('searchcraft-button', {\n 'searchcraft-button-primary': this.hierarchy === 'primary',\n 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',\n 'searchcraft-button-disabled': this.disabled,\n }), disabled: this.disabled, onClick: this.handleButtonClick, type: this.type }, this.iconOnly ? (this.icon) : (h(Fragment, null, this.iconPosition === 'left' && this.icon, h(\"span\", null, this.label), this.iconPosition === 'right' && this.icon))));\n }\n}, [0, \"searchcraft-button\", {\n \"hierarchy\": [1],\n \"disabled\": [4],\n \"icon\": [16],\n \"iconOnly\": [4, \"icon-only\"],\n \"iconPosition\": [1, \"icon-position\"],\n \"label\": [1],\n \"type\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftButton as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-71cc28c1.js.map","import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\n\nfunction deepMergeWithSpread(obj1, obj2) {\n const result = { ...obj1 };\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n }\n else {\n result[key] = obj2[key];\n }\n }\n }\n return result;\n}\n/**\n * Given an array of facet paths, removes parent facet paths.\n */\nfunction removeSubstringMatches(arr) {\n return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));\n}\nfunction facetToRecord(facet) {\n const records = {};\n const traverseAndAddToFragments = (facetChild) => {\n records[facetChild.path] = {\n count: facetChild.count,\n path: facetChild.path,\n };\n facetChild.children?.forEach((child) => {\n traverseAndAddToFragments(child);\n });\n };\n traverseAndAddToFragments(facet);\n return records;\n}\nfunction recordToObject(record) {\n const root = {\n count: 0,\n path: '/',\n children: {},\n };\n Object.keys(record).forEach((key) => {\n const fragment = record[key];\n if (!fragment) {\n return;\n }\n if (fragment.path === '/') {\n return;\n }\n const pathParts = fragment.path.substring(1).split('/');\n let currentRoot = root;\n let currentPath = '';\n pathParts.forEach((part, index) => {\n const nextPath = `${currentPath}/${part}`;\n if (!currentRoot.children[nextPath]) {\n currentRoot.children[nextPath] = {\n count: 0,\n path: nextPath,\n children: {},\n };\n }\n if (index === pathParts.length - 1) {\n currentRoot.children[nextPath].count = fragment.count;\n }\n currentPath = nextPath;\n currentRoot = currentRoot.children[nextPath];\n });\n });\n return root;\n}\nfunction objectToFacet(childObject) {\n const transformed = {\n count: childObject.count,\n path: childObject.path,\n children: [],\n };\n if (Object.keys(childObject.children).length > 0) {\n transformed.children = Object.values(childObject.children).map((subChildObject) => objectToFacet(subChildObject));\n }\n return transformed;\n}\n/**\n * Filters records with the parent paths from record2 OUT of record1\n */\nfunction filterRecordByParentPaths(record1, record2) {\n // Extract all paths (keys) both records\n const paths1 = Object.keys(record1);\n const paths2 = Object.keys(record2);\n // Find all parent paths in record2\n const parentPaths = new Set(paths2\n .filter((path) => path.split('/').length > 2) // Only consider paths with more than one level\n .map((path) => path.substring(0, path.lastIndexOf('/'))));\n // Filter out keys in record1 that share a parent path with any of the identified parent paths\n const filteredRecord = Object.fromEntries(paths1\n .filter((path) => !parentPaths.has(path.substring(0, path.lastIndexOf('/'))))\n .map((path) => [path, record1[path]]));\n return filteredRecord;\n}\nfunction mergeFacetRoots(fieldName, currentRoot, incomingRoot) {\n const currentArray = currentRoot[fieldName];\n const incomingArray = incomingRoot[fieldName];\n const currentRootFacetChild = {\n count: 0,\n path: '/',\n children: currentArray,\n };\n const incomingRootFacetChild = {\n count: 0,\n path: '/',\n children: incomingArray,\n };\n // Flatten them into records\n const currentRecord = facetToRecord(currentRootFacetChild);\n const incomingRecord = facetToRecord(incomingRootFacetChild);\n // Filter out the records from record1 (the current set of records)\n // that share a parent path with record2 (the incoming records)\n const filteredCurrentRecord = filterRecordByParentPaths(currentRecord, incomingRecord);\n // Deep merge the records together\n const mergedRecord = deepMergeWithSpread(filteredCurrentRecord, incomingRecord);\n // Convert into a heirarchical object\n const mergedObject = recordToObject(mergedRecord);\n // Convert the heirarchical object back to the Facet child structure\n const mergedFacetChild = objectToFacet(mergedObject);\n return {\n [fieldName]: mergedFacetChild.children,\n };\n}\n\nconst SearchcraftFacetList = /*@__PURE__*/ proxyCustomElement(class SearchcraftFacetList extends H {\n constructor() {\n super();\n this.__registerHost();\n this.facetSelectionUpdated = createEvent(this, \"facetSelectionUpdated\", 7);\n }\n /**\n * The name of the field where facets are applied.\n */\n fieldName = '';\n /**\n * When the facets are updated.\n */\n facetSelectionUpdated;\n baseFacetRoot;\n facetRoot;\n selectedPaths = {};\n lastTimeTaken;\n hasNewSearchTerm = false;\n lastSearchTerm;\n lastSearchMode;\n lastSortType;\n unsubscribe;\n searchStore = searchcraftStore.getState();\n handleStateUpdate(state) {\n const facetPrime = state.searchResponseFacetPrime;\n const timeTaken = state.searchResponseTimeTaken;\n if (!this.fieldName) {\n return;\n }\n /** Things to do when the state's search term has changed, but before the response received */\n if (state.searchTerm !== this.lastSearchTerm ||\n state.searchMode !== this.lastSearchMode ||\n state.sortType !== this.lastSortType) {\n this.selectedPaths = {};\n this.hasNewSearchTerm = true;\n }\n /** Things to do when a new response with a new facet prime has been received */\n if (timeTaken !== this.lastTimeTaken && facetPrime) {\n this.facetRoot = undefined;\n const incomingFacetRoot = facetPrime.find((facet) => this.fieldName === Object.keys(facet)[0]);\n /** Data is from a new search term: completely override our facets */\n if (this.hasNewSearchTerm) {\n this.baseFacetRoot = incomingFacetRoot;\n this.facetRoot = incomingFacetRoot;\n this.hasNewSearchTerm = false;\n }\n else if (this.baseFacetRoot && incomingFacetRoot) {\n /** Data is from an existing search term, merge the facets together */\n this.facetRoot = mergeFacetRoots(this.fieldName, this.baseFacetRoot, incomingFacetRoot);\n }\n }\n this.lastSearchTerm = state.searchTerm;\n this.lastSearchMode = state.searchMode;\n this.lastSortType = state.sortType;\n this.lastTimeTaken = timeTaken;\n }\n connectedCallback() {\n this.handleStateUpdate(this.searchStore);\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleCheckboxChange(path) {\n const isCheckboxChecked = !this.selectedPaths[path];\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n }\n else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter((testPath) => !testPath.includes(path));\n this.selectedPaths = updatedPaths.reduce((acc, str) => {\n acc[str] = true;\n return acc;\n }, {});\n }\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path]);\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });\n }\n formatLabel = (facetChild) => {\n const label = facetChild.path.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n formatSubLabel = (facetChild, facetChildAncestor) => {\n const facetChildPath = facetChild.path.substring(facetChildAncestor.path.length);\n const label = facetChildPath.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n render() {\n if (!this.fieldName) {\n return;\n }\n const firstFacet = this.facetRoot?.[this.fieldName];\n return (h(\"div\", { class: classNames('filtersListContainer', 'searchcraft-filters-list-container') }, !firstFacet && (h(\"p\", { class: 'searchcraft-facet-message' }, \"Enter a search to view facets.\")), firstFacet?.map((facetChild) => {\n const isChildSelected = facetChild.children\n ? facetChild.children?.some((child) => this.selectedPaths[child.path])\n : false;\n return (h(\"div\", { key: facetChild.path, class: classNames('searchcraft-filters-list-item') }, h(\"label\", { class: classNames('filterCheckboxLabel', 'searchcraft-filters-list-checkbox-label') }, h(\"input\", { checked: this.selectedPaths[facetChild.path], onChange: (_event) => this.handleCheckboxChange(facetChild.path), type: 'checkbox' }), isChildSelected ? (h(\"div\", { class: classNames('dashContainer', 'searchcraft-filter-list-dash-container') }, h(\"svg\", { width: '14', height: '3', viewBox: '0 0 14 3', fill: 'none' }, h(\"title\", null, \"Checkbox Dash\"), h(\"line\", { x1: '1.5', y1: '1.5', x2: '12.5', y2: '1.5', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round' })))) : (h(\"div\", { class: classNames('checkContainer', 'searchcraft-filter-list-check-container') }, h(\"svg\", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, h(\"title\", null, \"Checkbox Check\"), h(\"path\", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })))), this.formatLabel(facetChild)), facetChild.children && facetChild.children.length > 0 && (h(Fragment, null, facetChild.children.map((grandchild) => (h(\"label\", { key: grandchild.path, class: classNames('childFilterCheckboxLabel', 'searchcraft-child-filter-checkbox-label'), style: {\n display: this.selectedPaths[facetChild.path]\n ? 'flex'\n : 'none',\n } }, h(\"input\", { checked: this.selectedPaths[grandchild.path], onChange: (_event) => {\n this.handleCheckboxChange(grandchild.path);\n }, type: 'checkbox' }), h(\"div\", { class: classNames('checkContainer', 'searchcraft-filter-list-check-container') }, h(\"svg\", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, h(\"title\", null, \"Checkbox Check\"), h(\"path\", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), this.formatSubLabel(grandchild, facetChild))))))));\n })));\n }\n}, [0, \"searchcraft-facet-list\", {\n \"fieldName\": [1, \"field-name\"],\n \"baseFacetRoot\": [32],\n \"facetRoot\": [32],\n \"selectedPaths\": [32],\n \"lastTimeTaken\": [32],\n \"hasNewSearchTerm\": [32],\n \"lastSearchTerm\": [32],\n \"lastSearchMode\": [32],\n \"lastSortType\": [32],\n \"unsubscribe\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-facet-list\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-facet-list\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftFacetList);\n }\n break;\n } });\n}\n\nexport { SearchcraftFacetList as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-7777d986.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { g as getMillis } from './p-6104fe5d.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftSlider = /*@__PURE__*/ proxyCustomElement(class SearchcraftSlider extends H {\n constructor() {\n super();\n this.__registerHost();\n this.rangeChanged = createEvent(this, \"rangeChanged\", 7);\n }\n /**\n * The maximum value allowed.\n */\n max = 100;\n /**\n * The minimum value allowed.\n */\n min = 0;\n /**\n * The granularity that the value must adhere to.\n */\n granularity = getMillis('month');\n /** The type of data allowed. */\n dataType = 'number';\n endValue = this.max;\n startValue = this.min;\n lastFocusedHandle = 'max';\n /**\n * When the range has changed.\n * */\n rangeChanged;\n componentDidLoad() {\n this.startValue = this.min;\n this.endValue = this.max;\n }\n emitUpdate = async () => {\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n };\n handleStartValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n if (value <= this.endValue) {\n this.startValue = value;\n this.emitUpdate();\n }\n else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n handleEndValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n if (value >= this.startValue) {\n this.endValue = value;\n this.emitUpdate();\n }\n else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n render() {\n const rangeMin = this.min;\n const rangeMax = this.max;\n const startPercent = ((this.startValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n const endPercent = ((this.endValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n const startLabel = this.dataType === 'number'\n ? this.startValue\n : new Date(this.startValue).getFullYear();\n const endLabel = this.dataType === 'number'\n ? this.endValue\n : new Date(this.endValue).getFullYear();\n return (h(\"div\", { key: 'ec4a36e1ce6534b7c077114086d759e0b1e7a24e', class: 'searchcraft-slider-container' }, h(\"div\", { key: '35487cbeaeeb23052631804704645ca929340f70', class: 'searchcraft-slider-range-container' }, h(\"div\", { key: '186e699def8e7a6e58e8ad5f04953ac1c6584344', class: 'searchcraft-slider-active-range', style: {\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n } }), h(\"input\", { key: '97638e2a1471888c2be47f7526e9dd98fea58683', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.max, min: this.min, onInput: this.handleStartValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), h(\"input\", { key: 'db2abded80b606d17bde1677e4acc09a85e6e20e', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.max, min: this.min, onInput: this.handleEndValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), h(\"div\", { key: '83954b6955a872a17377d506d2d8458059acac03', class: 'searchcraft-slider-label-container' }, h(\"span\", { key: 'b5315b4438385ecf5df3f76579fdf102b6a8c39c', class: 'searchcraft-slider-label' }, startLabel), h(\"span\", { key: '875094ac7ee69e04c3a16407388dd27f167b3c8f', class: 'searchcraft-slider-label' }, endLabel))));\n }\n}, [0, \"searchcraft-slider\", {\n \"max\": [2],\n \"min\": [2],\n \"granularity\": [2],\n \"dataType\": [1, \"data-type\"],\n \"endValue\": [32],\n \"startValue\": [32],\n \"lastFocusedHandle\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-slider\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-slider\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSlider);\n }\n break;\n } });\n}\n\nexport { SearchcraftSlider as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-bb12ab5a.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftToggleButton extends H {\n constructor() {\n super();\n this.__registerHost();\n this.toggleUpdated = createEvent(this, \"toggleUpdated\", 7);\n }\n /**\n * The label.\n */\n label = 'Toggle';\n /**\n * The secondary label displayed below the main label.\n */\n subLabel;\n /**\n * When the toggle element is changed.\n */\n toggleUpdated;\n isActive = false;\n unsubscribe;\n lastSearchTerm;\n handleToggle = async () => {\n this.isActive = !this.isActive;\n this.toggleUpdated?.emit(this.isActive);\n };\n connectedCallback() {\n /** When the query changes, sets toggle button state back to inactive. */\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n if (state.searchTerm !== this.lastSearchTerm &&\n state.searchTerm.trim().length === 0) {\n this.isActive = false;\n }\n this.lastSearchTerm = state.searchTerm;\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n render() {\n return (h(\"div\", { key: '25f3acd2b5dd6837182c8f07c092c54c35542c2f', class: 'searchcraft-toggle-button-container' }, h(\"div\", { key: 'd2951f2673af55159ad6f39d381d272a3f9f872b' }, h(\"p\", { key: '2468e261d46b454ce896b614ca2a076d27a31a8b', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (h(\"p\", { key: '1d9887dc12f30fb1982cf0d8a692ebfeca8edc1a', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), h(\"button\", { key: 'f51bb553d6b210233aa6ebfc4318aa521036d922', class: classNames('searchcraft-toggle-button-background', {\n active: this.isActive,\n }), onClick: this.handleToggle, type: 'button' }, h(\"div\", { key: 'a34339f1bb5ab4742d897b01b61fe6c8c23e7e1e', class: classNames('searchcraft-toggle-button-handle', {\n active: this.isActive,\n }) }))));\n }\n}, [0, \"searchcraft-toggle-button\", {\n \"label\": [1],\n \"subLabel\": [1, \"sub-label\"],\n \"isActive\": [32],\n \"unsubscribe\": [32],\n \"lastSearchTerm\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-toggle-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftToggleButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftToggleButton as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-11b05b94.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { g as getMillis } from './p-6104fe5d.js';\nimport { d as defineCustomElement$4 } from './p-7777d986.js';\nimport { d as defineCustomElement$3 } from './p-bb12ab5a.js';\nimport { d as defineCustomElement$2 } from './p-11b05b94.js';\n\nconst SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftFilterPanel extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The items to filter.\n */\n items = [];\n unsubscribe;\n lastSearchTerm;\n searchStore = searchcraftStore.getState();\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n this.lastSearchTerm = state.searchTerm || '';\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleDateRangeChanged(fieldName, min, max) {\n const start = new Date(min);\n const end = new Date(max);\n this.searchStore.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,\n });\n this.searchStore.search();\n }\n handleNumericRangeChanged(fieldName, min, max) {\n this.searchStore.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${min} TO ${max}]`,\n });\n this.searchStore.search();\n }\n handleFacetSelectionUpdated(fieldName, paths) {\n if (paths.length > 0) {\n this.searchStore.addFacetPathsForIndexField({\n fieldName,\n value: `${fieldName}: IN [${paths.join(' ')}]`,\n });\n }\n else {\n this.searchStore.removeFacetPathsForIndexField(fieldName);\n }\n this.searchStore.search();\n }\n handleExactMatchToggleUpdated(isActive) {\n this.searchStore.setSearchMode(isActive ? 'exact' : 'fuzzy');\n this.searchStore.search();\n }\n handleMostRecentToggleUpdated(isActive) {\n this.searchStore.setSortType(isActive ? 'desc' : 'asc');\n this.searchStore.search();\n }\n /**\n * Iterate through `items` and render them based on `type`\n */\n render() {\n return (h(\"div\", { key: 'a2860cc8afa3f1c3e8af38a6d040b75b2e414554', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {\n switch (filterItem.type) {\n case 'dateRange': {\n const item = filterItem;\n const min = new Date(item.options.minDate).getTime();\n const max = new Date(item.options.maxDate).getTime();\n const granularityValue = getMillis(item.options.granularity);\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: min, max: max, granularity: granularityValue, dataType: 'date', onRangeChanged: (event) => {\n this.handleDateRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'numericRange': {\n const item = filterItem;\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: item.options.min, max: item.options.max, granularity: item.options.granularity, onRangeChanged: (event) => {\n this.handleNumericRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'facets': {\n const item = filterItem;\n // return \"filters-list\"\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-facet-list\", { fieldName: item.fieldName, onFacetSelectionUpdated: (event) => {\n this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths);\n } })));\n }\n case 'exactMatchToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleExactMatchToggleUpdated(event.detail);\n } }));\n }\n case 'mostRecentToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleMostRecentToggleUpdated(event.detail);\n } }));\n }\n }\n })));\n }\n}, [0, \"searchcraft-filter-panel\", {\n \"items\": [16],\n \"unsubscribe\": [32],\n \"lastSearchTerm\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-filter-panel\", \"searchcraft-facet-list\", \"searchcraft-slider\", \"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-filter-panel\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftFilterPanel$1);\n }\n break;\n case \"searchcraft-facet-list\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-slider\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-toggle-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftFilterPanel = SearchcraftFilterPanel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFilterPanel, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-filter-panel.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The classname applied to the label element.\n */\n inputLabelClassName = '';\n label = '';\n render() {\n return (h(\"label\", { key: '528396d4be9f22ff0c02d95d8bcea056576aed41', class: classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));\n }\n}, [0, \"searchcraft-input-label\", {\n \"inputLabelClassName\": [1, \"input-label-class-name\"],\n \"label\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInputLabel);\n }\n break;\n } });\n}\n\nexport { SearchcraftInputLabel as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-e55a7970.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { d as defineCustomElement$3 } from './p-71cc28c1.js';\nimport { d as defineCustomElement$2 } from './p-0e393fe1.js';\nimport { d as defineCustomElement$1 } from './p-e55a7970.js';\n\nconst SearchcraftInput = /*@__PURE__*/ proxyCustomElement(class SearchcraftInput extends H {\n constructor() {\n super();\n this.__registerHost();\n this.inputFocus = createEvent(this, \"inputFocus\", 7);\n this.inputBlur = createEvent(this, \"inputBlur\", 7);\n this.inputInit = createEvent(this, \"inputInit\", 7);\n }\n /**\n * Whether or not to automatically submit the search term when the input changes.\n */\n autoSearch = true;\n /**\n * Where to place the search button.\n */\n buttonPlacement = 'none';\n /**\n * The label for the submit button.\n */\n buttonLabel;\n /**\n * The label rendered above the input.\n */\n inputLabel;\n /**\n * A custom styles object to be applied to the input element.\n */\n customStyles = {};\n /**\n * The input element's placeholder value.\n */\n placeholderValue = 'Enter Search';\n /**\n * The starting value of the input element.\n */\n searchTerm = '';\n /**\n * When the input becomes focused.\n */\n inputFocus;\n /**\n * When the input becomes unfocused.\n */\n inputBlur;\n /**\n * Event emitted when input initializes.\n */\n inputInit;\n inputValue = this.searchTerm;\n error = false;\n core;\n searchStore = searchcraftStore.getState();\n init() {\n if (this.core) {\n this.searchStore.initialize(this.core);\n this.inputInit?.emit();\n }\n }\n connectedCallback() {\n this.init();\n }\n onCoreChange() {\n this.init();\n }\n handleOnInput = (event) => {\n const input = event.target;\n this.inputValue = input.value;\n if (!this.autoSearch) {\n return;\n }\n this.performSearch(input.value);\n };\n performSearch = async (value) => {\n if (value === searchcraftStore.getState().searchTerm) {\n return;\n }\n this.searchTerm = value.trim();\n this.error = false;\n this.searchStore.setSearchTerm(this.searchTerm);\n try {\n await this.searchStore.search();\n }\n catch (error) {\n console.log(error);\n this.error = true;\n }\n };\n handleClearInput = () => {\n this.inputValue = '';\n this.searchTerm = '';\n this.searchStore.setSearchTerm('');\n this.searchStore.setSearchClientResponseItems([]);\n this.error = false;\n };\n handleFormSubmit = async (event) => {\n event.preventDefault();\n await this.performSearch(this.searchTerm);\n };\n render() {\n const validatedCustomStyles = parseCustomStyles(this.customStyles);\n const isShowingClearButton = this.inputValue.length > 0;\n const inputGridClassNames = classNames('searchcraft-input-grid', {\n 'searchcraft-input-grid-buttonLeft': this.buttonPlacement === 'left',\n 'searchcraft-input-grid-buttonRight': this.buttonPlacement === 'right',\n 'searchcraft-input-grid-buttonNone': this.buttonPlacement === 'none',\n });\n const shouldHaveVerticalGap = this.inputLabel || this.error;\n const inputGridStyles = {\n gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',\n };\n return (h(\"form\", { key: '2c14849e36610a8da9c24004dfcbbd53b5e9f068', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, h(\"div\", { key: '9fbc29171b5764b36f0efb24bc1f90b149ce7a0a', class: inputGridClassNames, style: inputGridStyles }, h(\"div\", { key: 'a4126032544a6b56869f9654060b2baee686df55', class: 'searchcraft-input-button-wrapper' }, h(\"searchcraft-button\", { key: '605f079014b82c4ff3f1f1114cba420004244750', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (h(\"div\", { key: '6d6d275c7a6f3c82a6e94d1978516ef1ba2901dd', class: 'searchcraft-input-label-wrapper' }, h(\"searchcraft-input-label\", { key: 'fa3c06bb3f873af486d65408e98e78ecdaa4ed9d', label: this.inputLabel }))), this.error && (h(\"div\", { key: 'bf57d444c5de3b8f225cd3eeff93679f4152d7cb', class: 'searchcraft-input-error-wrapper' }, h(\"searchcraft-error-message\", { key: '7fcf3e079853c8d53451e91fae619b99aa77afad', errorMessage: 'Something went wrong.' }))), h(\"div\", { key: '6cdecf2241a2874e97c3ce25c92cd10aca7945ae', class: 'searchcraft-input-wrapper' }, h(\"input\", { key: '2953736cd91b6d4c59cf74ea4889a0502e58f160', autoComplete: 'off', class: 'searchcraft-input', onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {\n this.handleOnInput(event);\n }, placeholder: this.placeholderValue, style: validatedCustomStyles, type: 'text', value: this.inputValue }), h(\"div\", { key: 'b2c51a1c05f58c7918f80aef10c457b9d488d10d', class: 'searchcraft-input-search-icon-wrapper' }, h(\"svg\", { key: '66a5a1eb63565ff51e11b6c8728a1d2ca7e8dece', class: 'searchcraft-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'searchcraft-title' }, h(\"title\", { key: 'bc6ba43a25df7b51eec1a32daa7872e02886449a', id: 'searchcraft-title' }, \"Searchcraft Search Icon Light\"), h(\"path\", { key: '97e536d07c9e32cd0a82a852b00c0b40bfb1820a', d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), isShowingClearButton && (h(\"button\", { key: '2a87b3403fdb997bebb4e7407bbbd8dcffa5afca', type: 'button', class: 'searchcraft-input-clear-button', onClick: this.handleClearInput }, h(\"svg\", { key: '4b8319269c80d3f12b46b1c20db12b8f0929937c', class: 'searchcraft-input-clear-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'icon-title' }, h(\"title\", { key: '81ba07486777af6ceedc92429bb6a88624b777c3', id: 'icon-title' }, \"Searchcraft Clear Input Icon Light\"), h(\"path\", { key: '065f1f9a2b10532bc1495bacd7c4ef3de3867c1b', d: 'M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))))))));\n }\n static get watchers() { return {\n \"core\": [\"onCoreChange\"]\n }; }\n}, [0, \"searchcraft-input-form\", {\n \"autoSearch\": [4, \"auto-search\"],\n \"buttonPlacement\": [1, \"button-placement\"],\n \"buttonLabel\": [1, \"button-label\"],\n \"inputLabel\": [1, \"input-label\"],\n \"customStyles\": [1, \"custom-styles\"],\n \"placeholderValue\": [1, \"placeholder-value\"],\n \"searchTerm\": [1, \"search-term\"],\n \"core\": [16],\n \"inputValue\": [32],\n \"error\": [32]\n }, undefined, {\n \"core\": [\"onCoreChange\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-form\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-form\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInput);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftInput as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-3026f7d3.js.map","import { S as SearchcraftInput, d as defineCustomElement$1 } from './p-3026f7d3.js';\n\nconst SearchcraftInputForm = SearchcraftInput;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputForm, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-input-form.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\nimport { d as defineCustomElement$2 } from './p-71cc28c1.js';\n\nconst SearchcraftPagination$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPagination extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The custom styles object.\n */\n customStyles;\n // store vars\n searchTerm;\n searchResultsPerPage;\n searchResultsPage;\n searchResultsCount;\n // local vars\n searchResultsPagesCount = 1;\n searchResultsRangeMin = 1;\n searchResultsRangeMax = 1;\n // store functions\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n this.searchResultsRangeMin =\n (this.searchResultsPage - 1) * this.searchResultsPerPage + 1;\n this.searchResultsRangeMax =\n (this.searchResultsPerPage - 1) * this.searchResultsPerPage +\n this.searchResultsPerPage;\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n renderOddPaginationItem(page) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n renderEvenPaginationItem(page) {\n if (this.searchResultsPagesCount <= page) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n page < Math.ceil(this.searchResultsPagesCount / 2) // is the first or second even pagination item\n ? this.searchResultsPage <= page + 1\n : this.searchResultsPage >= page - 1) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item' }, \"...\")));\n }\n renderMiddlePaginationItem() {\n if (this.searchResultsPagesCount <= 3) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n this.searchResultsPage <= 3 ||\n this.searchResultsPage >= this.searchResultsPagesCount - 2) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === 3 ||\n this.searchResultsPage === this.searchResultsPagesCount - 2,\n }), type: 'button', onClick: () => this.handleGoToPage(this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3) }, this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item searchcraft-pagination-item-active' }, this.searchResultsPage)));\n }\n render() {\n // early return if there isn't a searchTerm or there is 1 or fewer pages of results\n if (!this.searchTerm || this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: classNames('searchcraft-pagination', parseCustomStyles(this.customStyles || {})) }, h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === 1, hierarchy: 'tertiary', onButtonClick: () => this.handleGoToPage(Math.max(1, this.searchResultsPage - 1)), label: 'Previous', iconPosition: 'left', icon: h(\"svg\", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Previous page icon\"), h(\"path\", { d: 'M12.5 15L7.5 10L12.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true })), h(\"ul\", { class: 'searchcraft-pagination-list' }, this.renderOddPaginationItem(1), this.renderEvenPaginationItem(2), this.renderMiddlePaginationItem(), this.renderEvenPaginationItem(this.searchResultsPagesCount > 4\n ? this.searchResultsPagesCount - 1\n : 4), this.renderOddPaginationItem(this.searchResultsPagesCount)), h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === this.searchResultsPagesCount, hierarchy: 'tertiary', onButtonClick: () => {\n this.handleGoToPage(Math.min(this.searchResultsPagesCount, this.searchResultsPage + 1));\n }, label: 'Next', iconPosition: 'right', icon: h(\"svg\", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Next page icon\"), h(\"path\", { d: 'M7.5 15L12.5 10L7.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true }))));\n }\n}, [0, \"searchcraft-pagination\", {\n \"customStyles\": [1, \"custom-styles\"],\n \"searchTerm\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsCount\": [32],\n \"searchResultsPagesCount\": [32],\n \"searchResultsRangeMin\": [32],\n \"searchResultsRangeMax\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-pagination\", \"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-pagination\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPagination$1);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPagination = SearchcraftPagination$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPagination, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-pagination.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\n\nconst SearchcraftPopoverButton$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverButton extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n handleOnClick() {\n searchcraftStore.getState().setPopoverVisibility(true);\n }\n render() {\n return (h(\"button\", { key: 'a8ee70b49a5309cfb1363a272ea0870c48c59688', type: 'button', onClick: this.handleOnClick.bind(this) }, h(\"slot\", { key: '9ac712ed1f6e69d73e7ade3d42501fb67a02c7ff' })));\n }\n}, [4, \"searchcraft-popover-button\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverButton$1);\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverButton = SearchcraftPopoverButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverButton, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-popover-button.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { a as getDocumentValueFromSearchResultMapping } from './p-6104fe5d.js';\n\nconst SearchcraftPopoverListItem = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItem extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n item;\n popoverResultMappings;\n /** The document position relative to the search results (For Measure) */\n documentPosition = 0;\n href;\n imageSrc;\n imageAlt;\n titleContent;\n subtitleContent;\n mapValuesFromDocument(document) {\n this.titleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);\n this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);\n this.href = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.href);\n this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);\n this.imageAlt = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageAlt);\n }\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n }\n disconnectedCallback() { }\n handleLinkClick = () => {\n const state = searchcraftStore.getState();\n const searchcraft = state.getSearchcraftInstance();\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = state.searchTerm;\n const number_of_documents = state.searchClientResponseItems.length || 0;\n searchcraft.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n render() {\n return (h(\"a\", { key: '870fae8c0019ea24d9ecd173a781a38e3b17f8de', class: 'searchcraft-popover-list-item', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSrc && (h(\"div\", { key: '9e200a2be177fed7f6303fdc1ba466fc47817b5d', class: 'searchcraft-popover-list-item-image-wrapper' }, h(\"img\", { key: '22124b2856cd41220ac852a1fbc94cbf2a1cd9f9', alt: this.imageAlt, src: this.imageSrc, class: 'searchcraft-popover-list-item-image' }))), h(\"div\", { key: 'b3f0bb6784a36befd044e71798915994093177ab', class: 'searchcraft-popover-list-item-info-wrapper' }, h(\"p\", { key: 'caa22a8d68b56814ee29498db48fe1c65d8d7644', class: 'searchcraft-popover-list-item-title' }, this.titleContent), h(\"p\", { key: '63e11be221d6f274855f7989b3a9dc4532c08e05', class: 'searchcraft-popover-list-item-subtitle' }, this.subtitleContent))));\n }\n}, [0, \"searchcraft-popover-list-item\", {\n \"item\": [16],\n \"popoverResultMappings\": [16],\n \"documentPosition\": [2, \"document-position\"],\n \"href\": [32],\n \"imageSrc\": [32],\n \"imageAlt\": [32],\n \"titleContent\": [32],\n \"subtitleContent\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListItem);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItem as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-3568414f.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { d as defineCustomElement$2 } from './p-05872320.js';\nimport { d as defineCustomElement$1 } from './p-3568414f.js';\n\nconst SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n popoverResultMappings;\n /**\n * The items to render in the list view.\n */\n searchClientResponseItems;\n adClientResponseItems;\n searchResultsPage;\n searchResultsPerPage;\n config = searchcraftStore.getState().core?.config;\n renderWithADMAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { adClientResponseItem: item, adSource: 'adMarketplace', key: item.id }))), this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdStartQuantity || 0;\n const adEndQuantity = this.config?.customAdEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${item.id}-ad-${n}` }));\n }\n }\n itemsToRender.push(h(\"searchcraft-popover-list-item\", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n return h(\"div\", { class: 'searchcraft-popover-list-view' }, itemsToRender);\n }\n renderWithNoAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n render() {\n switch (this.config?.adSource || 'None') {\n case 'adMarketplace':\n return this.renderWithADMAds();\n case 'Custom':\n return this.renderWithCustomAds();\n default:\n return this.renderWithNoAds();\n }\n }\n}, [0, \"searchcraft-popover-list-view\", {\n \"popoverResultMappings\": [16],\n \"searchClientResponseItems\": [16],\n \"adClientResponseItems\": [16],\n \"searchResultsPage\": [2, \"search-results-page\"],\n \"searchResultsPerPage\": [2, \"search-results-per-page\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-view\", \"searchcraft-ad\", \"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListView);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListView as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-b0bc5cee.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { d as defineCustomElement$8 } from './p-05872320.js';\nimport { d as defineCustomElement$7 } from './p-71cc28c1.js';\nimport { d as defineCustomElement$6 } from './p-0e393fe1.js';\nimport { d as defineCustomElement$5 } from './p-3026f7d3.js';\nimport { d as defineCustomElement$4 } from './p-e55a7970.js';\nimport { d as defineCustomElement$3 } from './p-3568414f.js';\nimport { d as defineCustomElement$2 } from './p-b0bc5cee.js';\n\nconst SearchcraftPopoverForm$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverForm extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The type of popover form to render.\n *\n * - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content.\n * - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component.\n * - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.\n */\n type = 'inline';\n /**\n * Formats the content rendered for each result.\n */\n popoverResultMappings;\n /**\n * The hotkey that activates the popover.\n */\n hotkey = 'k';\n /**\n * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.\n */\n hotkeyModifier = 'meta';\n isPopoverVisibleInState = false;\n unsubscribe;\n searchClientResponseItems = [];\n adClientResponseItems = [];\n searchTerm;\n isFocused = false;\n breakpointSm = 576;\n breakpointMd = 768;\n breakpointLg = 992;\n searchResultsPage;\n searchResultsPerPage;\n modalElement;\n get hostElement() { return this; }\n componentDidLoad() {\n // Loads the breakpoint values into state\n const computedStyle = getComputedStyle(document.documentElement);\n this.breakpointSm = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-sm').trim());\n this.breakpointMd = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-md').trim());\n this.breakpointLg = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-lg').trim());\n // Set popover visiblity in state\n this.isPopoverVisibleInState = searchcraftStore.getState().isPopoverVisible;\n // Add event listeners\n document.addEventListener('click', this.handleDocumentClick);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n // Subscribe to state events\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n if (this.isPopoverVisibleInState !== state.isPopoverVisible) {\n this.handlePopoverVisibilityChange(state.isPopoverVisible);\n }\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n document.removeEventListener('click', this.handleDocumentClick);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n handleDocumentClick = (event) => {\n if (!this.hostElement.contains(event.target)) {\n this.isFocused = false;\n }\n };\n /**\n * Handles when popover visibility is changed in state\n */\n handlePopoverVisibilityChange(isVisible) {\n this.isPopoverVisibleInState = isVisible;\n document.body.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n /**\n * Actions to perform when various keys are pressed within the popover form.\n */\n handleDocumentKeyDown = (event) => {\n // Document-scoped actions\n if (event.key === this.hotkey) {\n this.handleHotkeyPressed(event);\n }\n // Document-scoped -> Popover-scoped keyboard event boundary\n if (!this.hostElement.contains(document.activeElement)) {\n return;\n }\n // Popover-scoped actions\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n this.focusOnNextListItem(event.key);\n break;\n case 'Escape':\n searchcraftStore.getState().setPopoverVisibility(false);\n break;\n default:\n return;\n }\n };\n handleInputInit = () => {\n const input = this.hostElement.querySelector('.searchcraft-input');\n input?.focus();\n };\n /**\n * When popover is `inline` and the viewport is at the smallest breakpoint,\n * focusing on the input will open a modal version of the popover form.\n */\n handleInputFocus() {\n this.isFocused = true;\n if (this.type === 'inline' &&\n window.visualViewport &&\n window.visualViewport.width < this.breakpointSm) {\n searchcraftStore.getState().setPopoverVisibility(true);\n // Appends a popover form of type=`modal` to the body\n if (!this.modalElement) {\n this.modalElement = document.createElement('searchcraft-popover-form');\n this.modalElement.popoverResultMappings = this.popoverResultMappings;\n this.modalElement.setAttribute('type', 'fullscreen');\n document.body.appendChild(this.modalElement);\n }\n }\n }\n handleModalBackdropClick(_event) {\n searchcraftStore.getState().setPopoverVisibility(false);\n }\n /**\n * When a hotkey is pressed, tests if the modifiers also match.\n * If modifiers match, toggles visibility of the popover modal.\n */\n handleHotkeyPressed(event) {\n if ((event.ctrlKey && this.hotkeyModifier === 'ctrl') ||\n (event.altKey && this.hotkeyModifier === 'alt') ||\n (event.metaKey && this.hotkeyModifier === 'meta')) {\n event.preventDefault();\n if (this.type === 'inline' && !this.isPopoverVisibleInState) {\n const hostElementInput = this.hostElement.querySelector('.searchcraft-input');\n hostElementInput?.focus();\n }\n else {\n searchcraftStore\n .getState()\n .setPopoverVisibility(!this.isPopoverVisibleInState);\n }\n }\n }\n handleCancelButtonClick() {\n searchcraftStore.getState().setPopoverVisibility(false);\n }\n /**\n * Moves focus to the next/previous list item in the list view. If you are at the top\n * of the list view, it moves focus back to the input.\n *\n * @param direction\n */\n focusOnNextListItem(direction) {\n const listItems = Array.from(document.querySelectorAll('a.searchcraft-popover-list-item')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);\n const currentIndex = listItems.indexOf(document.activeElement);\n if (direction === 'ArrowDown') {\n listItems[(currentIndex + 1) % listItems.length]?.focus();\n }\n else if (direction === 'ArrowUp') {\n if (currentIndex >= 1) {\n listItems[currentIndex - 1]?.focus();\n }\n else {\n const input = document.querySelector('.searchcraft-input');\n if (input) {\n input.focus();\n requestAnimationFrame(() => {\n input.selectionEnd = input.value.length;\n input.selectionStart = input.value.length;\n });\n }\n }\n }\n }\n get hasResultsToShow() {\n return (this.searchTerm &&\n this.searchTerm?.trim()?.length > 0 &&\n this.searchClientResponseItems.length > 0);\n }\n renderInlinePopover() {\n const isListViewVisible = this.hasResultsToShow && this.isFocused;\n const popoverFormClassNames = classNames('searchcraft-popover-form searchcraft-popover-form-inline', {\n 'searchcraft-popover-form-active': isListViewVisible,\n });\n return (h(\"div\", { class: popoverFormClassNames }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this) }), isListViewVisible && (h(\"div\", { class: 'searchcraft-popover-inline-wrapper-outer' }, h(\"div\", { class: 'searchcraft-popover-inline-wrapper-inner' }, h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))))));\n }\n renderModalPopover() {\n if (this.isPopoverVisibleInState) {\n const popoverFormClassNames = classNames('searchcraft-popover-form', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n });\n return (h(\"div\", { class: 'searchcraft-popover-form-modal' }, h(\"div\", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), h(\"div\", { class: 'searchcraft-popover-form-modal-inner' }, h(\"div\", { class: popoverFormClassNames }, h(\"div\", { class: 'searchcraft-popover-form-input-wrapper' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))))));\n }\n }\n renderFullscreenPopover() {\n if (this.isPopoverVisibleInState) {\n return (h(\"div\", { class: 'searchcraft-popover-form-fullscreen' }, h(\"div\", { class: 'searchcraft-popover-form' }, h(\"div\", { class: 'searchcraft-popover-form-input-wrapper' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage })))));\n }\n }\n render() {\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover();\n case 'modal':\n return this.renderModalPopover();\n case 'fullscreen':\n return this.renderFullscreenPopover();\n }\n }\n}, [0, \"searchcraft-popover-form\", {\n \"type\": [1],\n \"popoverResultMappings\": [16],\n \"hotkey\": [1],\n \"hotkeyModifier\": [1, \"hotkey-modifier\"],\n \"isPopoverVisibleInState\": [32],\n \"unsubscribe\": [32],\n \"searchClientResponseItems\": [32],\n \"adClientResponseItems\": [32],\n \"searchTerm\": [32],\n \"isFocused\": [32],\n \"breakpointSm\": [32],\n \"breakpointMd\": [32],\n \"breakpointLg\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"modalElement\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-form\", \"searchcraft-ad\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-form\", \"searchcraft-input-label\", \"searchcraft-popover-form\", \"searchcraft-popover-list-item\", \"searchcraft-popover-list-view\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-form\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverForm$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$8();\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$7();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$6();\n }\n break;\n case \"searchcraft-input-form\":\n if (!customElements.get(tagName)) {\n defineCustomElement$5();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-popover-form\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverForm = SearchcraftPopoverForm$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverForm, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-popover-form.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { f as formatNumberWithCommas } from './p-6104fe5d.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\n\nconst SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The custom formatter for the resulting string.\n *\n * @example\n * ```ts\n * resultsInfo.customFormatter = (range, count, responseTime) =>\n * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;\n * ```\n */\n customFormatter;\n /**\n * The custom styles object.\n */\n customStyles;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n // local vars\n count = 0;\n range = [0, 0];\n responseTime = '0';\n unsubscribe = () => { };\n connectedCallback() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsCount = state.searchResultsCount;\n // local vars\n this.count = this.searchResultsCount;\n this.range[0] =\n this.searchResultsPage <= 1\n ? 1\n : this.searchResultsPerPage * (this.searchResultsPage - 1);\n this.range[1] = this.searchResultsPerPage * this.searchResultsPage;\n this.range[1] =\n this.range[1] > this.searchResultsCount\n ? this.searchResultsCount\n : this.range[1];\n this.responseTime = ((state.searchResponseTimeTaken || 0) * 1000).toFixed(2);\n });\n }\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n render() {\n if (!this.searchTerm || this.searchResultsCount === 0) {\n return null;\n }\n return (h(\"p\", { class: classNames('searchcraft-results-info', parseCustomStyles(this.customStyles || {})) }, this.customFormatter\n ? this.customFormatter([\n formatNumberWithCommas(this.range[0]),\n formatNumberWithCommas(this.range[1]),\n ], formatNumberWithCommas(this.count), this.responseTime)\n : `${this.count} results found in ${this.responseTime}ms`));\n }\n}, [0, \"searchcraft-results-info\", {\n \"customFormatter\": [16],\n \"customStyles\": [1, \"custom-styles\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"count\": [32],\n \"range\": [32],\n \"responseTime\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-results-info\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-results-info\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftResultsInfo$1);\n }\n break;\n } });\n}\n\nconst SearchcraftResultsInfo = SearchcraftResultsInfo$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftResultsInfo, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-results-info.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\n\nconst SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {\n constructor() {\n super();\n this.__registerHost();\n this.selectChange = createEvent(this, \"selectChange\", 7);\n }\n /**\n * The caption displayed below the select input.\n */\n caption;\n /**\n * Whether the select input is disabled.\n */\n disabled = false;\n /**\n * The ID for the select input.\n */\n inputId;\n /**\n * The label of the select input.\n */\n label;\n /**\n * The ID for the label of the select input.\n */\n labelId;\n /**\n * The name of the select input.\n */\n name;\n /**\n * The options for the select input.\n */\n options = [];\n /**\n * A custom styles object.\n */\n customStyles;\n /**\n * The event fired when the select is changed.\n */\n selectChange;\n searchResultsPerPage;\n setSearchResultsPage = () => { };\n setSearchResultsPerPage = () => { };\n handleSelectChange = (event) => {\n this.selectChange.emit(event.target.value);\n };\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n render() {\n return (h(\"div\", { key: '5024d49d89a3649a5de591d37ded304a9dfb36d9', class: classNames('searchcraft-select', parseCustomStyles(this.customStyles || {})) }, this.label && (h(\"label\", { key: '005aea9b190e5a6c041721e20395be23f76faab6', class: 'searchcraft-select-label', id: this.labelId || `${this.inputId}-label`, htmlFor: this.inputId }, this.label)), h(\"div\", { key: '209d56844c0bcd241e73bafcad24fac927fe7ffa', class: 'searchcraft-select-input-wrapper' }, h(\"select\", { key: '010c9e596ef45a303f84c0ac0fa54ab67556d7b6', \"aria-labelledby\": this.label ? this.labelId || `${this.inputId}-label` : undefined, class: 'searchcraft-select-input', disabled: this.disabled, id: this.inputId, name: this.name, onChange: this.handleSelectChange }, (typeof this.options === 'string'\n ? JSON.parse(this.options)\n : this.options).map(({ label, value, selected }) => {\n return (h(\"option\", { key: value, value: value, selected: selected }, label));\n })), h(\"svg\", { key: '51d9fb79381468ee0992475ba376df5a5961116c', class: 'searchcraft-select-input-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", { key: '59186138953557764915d41708d4bcc23a9bb97f' }, \"Select dropdown icon\"), h(\"path\", { key: 'ec2c962df16cb68bdaf3e2c32e57d875a63957a9', d: 'M5 7.5L10 12.5L15 7.5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), this.caption && (h(\"p\", { key: '742bc2dbd8371938894d49bb37d429d1b7a07d7a', class: 'searchcraft-select-caption' }, this.caption))));\n }\n}, [0, \"searchcraft-select\", {\n \"caption\": [1],\n \"disabled\": [4],\n \"inputId\": [1, \"input-id\"],\n \"label\": [1],\n \"labelId\": [1, \"label-id\"],\n \"name\": [1],\n \"options\": [1],\n \"customStyles\": [1, \"custom-styles\"],\n \"searchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32],\n \"setSearchResultsPerPage\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-select\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSelect);\n }\n break;\n } });\n}\n\nexport { SearchcraftSelect as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-bf6a086a.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\nimport { d as defineCustomElement$2 } from './p-bf6a086a.js';\n\nconst SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]).\n * The base value is defined by the `searchResultsPerPage` option in the configuration.\n */\n increment = 20;\n /**\n * The custom styles object.\n */\n customStyles;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n searchResultsPagesCount;\n // local vars\n initialSearchResultsPerPage;\n // store functions\n setSearchResultsPerPage = () => { };\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n this.setSearchResultsPerPage = state.setSearchResultsPerPage;\n });\n this.initialSearchResultsPerPage =\n searchcraftStore.getState().searchResultsPerPage;\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n render() {\n // early return if there isn't a searchTerm or there is 1 or fewer pages of results\n if (!this.searchTerm || this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: classNames('searchcraft-search-results-per-page', parseCustomStyles(this.customStyles || {})) }, h(\"div\", { class: 'searchcraft-search-results-per-page-select' }, h(\"label\", { class: 'searchcraft-search-results-per-page-select-label', htmlFor: 'searchcraft-search-results-per-page-select-input' }, \"Results Per Page\"), h(\"div\", { class: 'searchcraft-search-results-per-page-select-input' }, h(\"searchcraft-select\", { inputId: 'searchcraft-search-results-per-page-select-input', name: 'results-per-page', options: [...Array(5)].map((_, index) => {\n const value = this.initialSearchResultsPerPage +\n Number(this.increment) * index;\n return {\n label: `${value}`,\n value,\n };\n }), onSelectChange: (event) => {\n this.setSearchResultsPerPage(Number(event.detail));\n this.setSearchResultsPage(1);\n } })))));\n }\n}, [0, \"searchcraft-search-results-per-page\", {\n \"increment\": [8],\n \"customStyles\": [1, \"custom-styles\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"searchResultsPagesCount\": [32],\n \"initialSearchResultsPerPage\": [32],\n \"setSearchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-results-per-page\", \"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-results-per-page\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSearchResultsPerPage$1);\n }\n break;\n case \"searchcraft-select\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSearchResultsPerPage = SearchcraftSearchResultsPerPage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResultsPerPage, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-search-results-per-page.js.map","import { p as proxyCustomElement, H } from './p-5365011f.js';\n\nconst styles = `:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2)}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var(--sc-color-background-hover, #fafafa);--sc-color-background-active: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, #f7f7f7 );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-secondary-hover, var(--sc-color-background-hover, #e6e6e6) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var(--sc-color-foreground-secondary, #404040);--sc-border-neutral: rgba(0, 0, 0, 0.1);--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var(--sc-color-brand-hover, #2e2e2e);--sc-color-brand-active: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var(--sc-color-brand-active, #292929);--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-surface-brand-secondary-hover: var( --sc-color-brand-secondary-hover, var(--sc-color-brand-hover, #ebebeb) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover: hsl(from var(--sc-color-success) h s 30);--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, #009900 );--sc-color-success-primary-active: hsl(from var(--sc-color-success) h s 20);--sc-surface-success-primary-active: var( --sc-color-success-primary-active, #006600 );--sc-color-success-secondary: hsl(from var(--sc-color-success) h s 90);--sc-surface-success-secondary: var(--sc-color-success-secondary, #ccffcc);--sc-color-success-secondary-hover: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, #e6ffe6 );--sc-color-success-secondary-active: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, #b2ffb2 );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover: hsl(from var(--sc-color-caution) h s 30);--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, #e57300 );--sc-color-caution-primary-active: hsl(from var(--sc-color-caution) h s 20);--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, #b25a00 );--sc-color-caution-secondary: hsl(from var(--sc-color-caution) h s 90);--sc-surface-caution-secondary: var(--sc-color-caution-secondary, #ffd9b3);--sc-color-caution-secondary-hover: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, #ffe5cc );--sc-color-caution-secondary-active: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, #ffcc99 );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover: hsl(from var(--sc-color-danger) h s 30);--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, #e50000 );--sc-color-danger-primary-active: hsl(from var(--sc-color-danger) h s 20);--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, #b30000 );--sc-color-danger-secondary: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var(--sc-color-danger-secondary, #ffcccc);--sc-color-danger-secondary-hover: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, #ffe7e7 );--sc-color-danger-secondary-active: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, #ffb3b3 );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover: hsl(from var(--sc-color-success) h s 30%);--sc-color-success-primary-active: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary: hsl(from var(--sc-color-success) h s 90%);--sc-color-success-secondary-hover: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover: hsl(from var(--sc-color-caution) h s 30%);--sc-color-caution-primary-active: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary: hsl(from var(--sc-color-caution) h s 90%);--sc-color-caution-secondary-hover: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover: hsl(from var(--sc-color-danger) h s 30%);--sc-color-danger-primary-active: hsl(from var(--sc-color-danger) h s 20%);--sc-color-danger-secondary: hsl(from var(--sc-color-danger) h s 90%);--sc-color-danger-secondary-hover: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-custom-ad{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.searchcraft-adm-ad{all:unset;display:flex;flex-direction:row;cursor:pointer;gap:8px;padding-right:var(--sc-popover-list-item-padding-horizontal);padding-left:var(--sc-popover-list-item-padding-horizontal);padding-top:var(--sc-popover-list-item-padding-vertical);padding-bottom:var(--sc-popover-list-item-padding-vertical);border:1px solid blue}.searchcraft-adm-ad:focus{background-color:var(--sc-surface-neutral-secondary-active);color:var(--sc-content-neutral-secondary)}.searchcraft-adm-ad:hover{background-color:var(--sc-surface-neutral-secondary-hover);color:var(--sc-content-neutral-secondary)}.searchcraft-adm-ad-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:inherit}.searchcraft-adm-ad-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:inherit}.searchcraft-adm-ad-image-wrapper{width:var(--sc-popover-list-item-image-size);height:var(--sc-popover-list-item-image-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}.searchcraft-adm-ad-image{max-width:var(--sc-popover-list-item-image-size);max-height:var(--sc-popover-list-item-image-size)}.searchcraft-adm-ad-info-wrapper{display:flex;flex-direction:column;gap:8px;justify-content:center}.searchcraft-search-result-container{all:unset;align-items:flex-start;border-radius:var(--sc-border-radius-lg);display:flex;flex-direction:column;gap:16px;padding:8px;color:inherit;background-color:var(--sc-surface-neutral-primary)}@media(min-width: 768px){.searchcraft-search-result-container{flex-direction:row}}a.searchcraft-search-result-container{cursor:pointer;transition:background-color 100ms}.searchcraft-base-search-result-content-container{flex:1;display:flex;flex-direction:column;gap:8px}.searchcraft-search-result-image{border-radius:calc(--sc-border-radius-lg - 8px);border-radius:calc(var(--sc-border-radius-lg) - 8px);width:100%}@media(min-width: 768px){.searchcraft-search-result-image{width:200px}}.searchcraft-base-search-result-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin:0}.searchcraft-base-search-result-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-disabled);margin:0}.searchcraft-base-search-result-body-content{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-base-search-result-footer-content{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-disabled);margin:0}.searchcraft-search-results-container{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state-container{text-align:center}.searchcraft-search-results-error-message-container{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-error-message{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-danger);margin:0}.filtersListContainer{width:100%}.filterCheckboxLabel{align-items:center;color:var(--sc-content-brand);display:flex;font-family:var(--sc-font-family);font-size:14px;font-weight:600;gap:14px;position:relative;-webkit-font-smoothing:antialiased}.filterCheckboxLabel input[type=checkbox]{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:8px;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.filterCheckboxLabel input[type=checkbox]:focus{outline:2px solid var(--sc-surface-brand-primary)}.filterCheckboxLabel input[type=checkbox]:checked{background-color:var(--sc-surface-brand-primary);position:relative}.filterCheckboxLabel input[type=checkbox]:checked+.checkContainer{display:block}.filterCheckboxLabel input[type=checkbox]:checked+.dashContainer{display:block}.childFilterCheckboxLabel{align-items:center;color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);font-size:14px;font-weight:600;gap:12px;margin-left:24px;position:relative}.childFilterCheckboxLabel input[type=checkbox]{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary-hover);border:1px solid var(--sc-surface-disabled);border-radius:8px;cursor:pointer;display:flex;height:24px;justify-content:center;position:relative;width:24px;-webkit-font-smoothing:antialiased}.childFilterCheckboxLabel input[type=checkbox]:focus{outline:2px solid var(--sc-surface-brand-primary)}.childFilterCheckboxLabel input[type=checkbox]:checked{background-color:var(--sc-surface-brand-primary);position:relative}.childFilterCheckboxLabel input[type=checkbox]:checked+.checkContainer{display:block}.childFilterCheckboxLabel input[type=checkbox]:checked+.dashContainer{display:block}.checkContainer{display:none;height:16px;width:16px;position:absolute;top:9px;left:8px}.dashContainer{display:none;height:3px;width:14px;position:absolute;top:3px;left:9px}.searchcraft-facet-message{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-disabled);text-align:center}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-bold)}:root{--sc-input-border-radius: var(--sc-border-radius);--sc-input-search-icon-size: 20px;--sc-input-clear-icon-size: 20px;--sc-input-padding-left: 44px;--sc-input-padding-right: 44px}.searchcraft-input-grid{display:grid;gap:4px 8px}.searchcraft-input-grid-buttonLeft{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-grid-buttonLeft .searchcraft-input-button-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonLeft .searchcraft-input-label-wrapper{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-grid-buttonLeft .searchcraft-input-error-wrapper{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-grid-buttonLeft .searchcraft-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonRight{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-grid-buttonRight .searchcraft-input-button-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonRight .searchcraft-input-label-wrapper{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-grid-buttonRight .searchcraft-input-error-wrapper{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-grid-buttonRight .searchcraft-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonNone{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-grid-buttonNone .searchcraft-input-button-wrapper{display:none}.searchcraft-input-grid-buttonNone .searchcraft-input-label-wrapper{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-grid-buttonNone .searchcraft-input-error-wrapper{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-grid-buttonNone .searchcraft-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-wrapper{position:relative;display:flex}.searchcraft-input{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-border-radius);border:none;color:var(--sc-content-neutral-primary);outline:none;padding-left:var(--sc-input-padding-left);padding-right:var(--sc-input-padding-right);padding-top:12px;padding-bottom:12px;flex:1}.searchcraft-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input:focus{outline:var(--sc-border-brand) solid 2px}.searchcraft-input:focus::placeholder{opacity:0}.searchcraft-input.error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input.error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-search-icon-wrapper{align-items:center;justify-content:center;display:flex;position:absolute;pointer-events:none;bottom:0;left:0;top:0;width:var(--sc-input-padding-left)}.searchcraft-input-search-icon{pointer-events:none;width:var(--sc-input-search-icon-size);height:var(--sc-input-search-icon-size);color:var(--sc-content-neutral-secondary)}.searchcraft-input-clear-button{all:unset;align-items:center;justify-content:center;cursor:pointer;display:flex;position:absolute;border:none;outline:none;bottom:0;right:0;top:0;width:var(--sc-input-padding-right)}.searchcraft-input-clear-icon{width:var(--sc-input-clear-icon-size);height:var(--sc-input-clear-icon-size);color:var(--sc-content-brand)}.searchcraft-input-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-form-border-radius: var(--sc-border-radius);--sc-popover-list-view-height: 400px;--sc-popover-list-item-image-size: 60px;--sc-popover-list-item-padding-horizontal: 8px;--sc-popover-list-item-padding-vertical: 8px;--sc-popover-modal-max-width: 570px}.searchcraft-popover-form{display:flex;flex-direction:column;flex:1}.searchcraft-popover-form .searchcraft-popover-form-input-wrapper{padding:12px;background-color:var(--sc-surface-neutral-secondary);display:flex;flex-direction:row;gap:4px}.searchcraft-popover-form .searchcraft-popover-form-input-wrapper>searchcraft-input-form{flex:1}.searchcraft-popover-form .searchcraft-popover-form-cancel-button{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);border:0;outline:0;padding:0;flex-shrink:0;background:none;cursor:pointer;padding-left:12px;padding-right:12px}.searchcraft-popover-form .searchcraft-popover-form-cancel-button:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-popover-form .searchcraft-popover-form-cancel-button:focus{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-popover-form-inline .searchcraft-input{border-top-left-radius:var(--sc-popover-form-border-radius);border-top-right-radius:var(--sc-popover-form-border-radius);border-bottom-left-radius:var(--sc-popover-form-border-radius);border-bottom-right-radius:var(--sc-popover-form-border-radius);border:none;outline:none}.searchcraft-popover-form-inline.searchcraft-popover-form-active .searchcraft-input{border-top-left-radius:var(--sc-popover-form-border-radius);border-top-right-radius:var(--sc-popover-form-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.searchcraft-popover-form-inline .searchcraft-popover-inline-wrapper-outer{position:relative}.searchcraft-popover-form-inline .searchcraft-popover-inline-wrapper-inner{position:absolute;height:var(--sc-popover-list-view-height);z-index:1000;width:100%}.searchcraft-popover-form-inline .searchcraft-popover-list-view{display:flex;flex-direction:column;overflow:auto;background-color:var(--sc-surface-neutral-secondary);border-bottom-left-radius:var(--sc-popover-form-border-radius);border-bottom-right-radius:var(--sc-popover-form-border-radius);max-height:var(--sc-popover-list-view-height)}.searchcraft-popover-form-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:0;background-color:var(--sc-surface-neutral-secondary)}@media(min-width: 576px){.searchcraft-popover-form-modal{padding:16px;background-color:rgba(0,0,0,0)}}.searchcraft-popover-form-modal .searchcraft-input{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);outline-width:1px;outline-color:var(--sc-border-neutral)}.searchcraft-popover-form-modal .searchcraft-popover-form-modal-backdrop{position:absolute;inset:0;background-color:rgba(0,0,0,.5);display:none}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal .searchcraft-popover-form-modal-inner{position:absolute;inset:0;z-index:1002;margin-top:0px;display:flex;border-radius:var(--sc-popover-form-border-radius);overflow:hidden}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-form-modal-inner{inset:auto;position:relative;width:100%;margin-top:100px;max-width:var(--sc-popover-modal-max-width)}}.searchcraft-popover-form-modal .searchcraft-popover-list-view{display:flex;flex-direction:column;overflow:auto;background-color:var(--sc-surface-neutral-secondary);border-bottom-left-radius:0;border-bottom-right-radius:0}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-list-view{max-height:var(--sc-popover-list-view-height)}}.searchcraft-popover-form-modal searchcraft-popover-list-view{overflow:scroll}@media(min-width: 576px){.searchcraft-popover-form-modal searchcraft-popover-list-view{overflow:auto}}.searchcraft-popover-form-fullscreen{position:fixed;inset:0;z-index:1000;background-color:var(--sc-surface-neutral-secondary)}.searchcraft-popover-form-fullscreen .searchcraft-popover-form{position:absolute;inset:0}.searchcraft-popover-form-fullscreen .searchcraft-input{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);outline-width:1px;outline-color:var(--sc-border-neutral)}.searchcraft-popover-form-fullscreen searchcraft-popover-list-view{overflow:scroll}.searchcraft-popover-list-item{all:unset;color:var(--sc-content-neutral-secondary);display:flex;flex-direction:row;cursor:pointer;gap:8px;padding-right:var(--sc-popover-list-item-padding-horizontal);padding-left:var(--sc-popover-list-item-padding-horizontal);padding-top:var(--sc-popover-list-item-padding-vertical);padding-bottom:var(--sc-popover-list-item-padding-vertical)}.searchcraft-popover-list-item:focus{background-color:var(--sc-surface-neutral-secondary-active);color:var(--sc-content-neutral-secondary)}.searchcraft-popover-list-item:hover{background-color:var(--sc-surface-neutral-secondary-hover);color:var(--sc-content-neutral-secondary)}.searchcraft-popover-list-item-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:inherit}.searchcraft-popover-list-item-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:inherit}.searchcraft-popover-list-item-image-wrapper{width:var(--sc-popover-list-item-image-size);height:var(--sc-popover-list-item-image-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}.searchcraft-popover-list-item-image{max-width:var(--sc-popover-list-item-image-size);max-height:var(--sc-popover-list-item-image-size)}.searchcraft-popover-list-item-info-wrapper{display:flex;flex-direction:column;gap:8px;justify-content:center}.searchcraft-results-info{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-primary);margin:0}.searchcraft-slider-container{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.searchcraft-slider-range-container{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range-container::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range-container .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range-container .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range-container .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range-container .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range-container .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:2px solid var(--sc-border-neutral);cursor:pointer;height:20px;pointer-events:all;width:20px;-webkit-appearance:none}.searchcraft-slider-range-container .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:2px solid var(--sc-border-neutral);cursor:pointer;height:20px;pointer-events:all;width:20px}.searchcraft-slider-label-container{color:var(--sc-content-primary);display:flex;font-family:\"Source Sans Pro\",sans-serif;font-size:15px;font-weight:600;justify-content:space-between;margin-top:10px;width:100%}.searchcraft-slider-label{min-width:30px;text-align:center}.searchcraft-toggle-button-container{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:var(--sc-content-neutral-primary)}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:var(--sc-content-neutral-secondary)}.searchcraft-toggle-button-background{transition:background-color .2s;background:var(--sc-surface-disabled);border:none;border-radius:16px;cursor:pointer;height:26px;position:relative;width:44px;flex-shrink:0}.searchcraft-toggle-button-background.active{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-handle.active{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.searchcraft-search-results-per-page-select-input{min-width:120px}/*# sourceMappingURL=hologram.css.map */\n`;\n\nconst SearchcraftTheme$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftTheme extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The name of the theme.\n */\n theme = 'light';\n /**\n * The custom theme configuration object.\n */\n customTheme = '[]';\n camelToKebab = (string) => {\n return string\n .replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`) // Convert uppercase letters to `-lowercase`\n .toLowerCase(); // Ensure the whole string is in lowercase\n };\n componentDidLoad() {\n // Inject style element\n const styleElement = document.querySelector('#searchcraft-theme') ||\n document.createElement('style');\n styleElement.innerHTML = styles;\n styleElement.id = 'searchcraft-theme';\n const head = document.head || document.getElementsByTagName('head')[0];\n if (!head.contains(styleElement)) {\n if (head.firstChild) {\n head.insertBefore(styleElement, head.firstChild);\n }\n else {\n head.appendChild(styleElement);\n }\n }\n // Add theme name to body\n document.body.dataset.theme = this.theme;\n // Add CSS variables from customTheme configuration to document\n Object.entries(JSON.parse(this.customTheme)).map(([key, value]) => {\n document.documentElement.style.setProperty(`--${this.camelToKebab(key)}`, `${value}`);\n });\n }\n render() {\n return;\n }\n}, [0, \"searchcraft-theme\", {\n \"theme\": [1],\n \"customTheme\": [1, \"custom-theme\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-theme\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-theme\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftTheme$1);\n }\n break;\n } });\n}\n\nconst SearchcraftTheme = SearchcraftTheme$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftTheme, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-theme.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=new Set([\"children\",\"localName\",\"ref\",\"style\",\"className\"]),n=new WeakMap,t=(e,t,o,l,a)=>{const s=a?.[t];void 0===s?(e[t]=o,null==o&&t in HTMLElement.prototype&&e.removeAttribute(t)):o!==l&&((e,t,o)=>{let l=n.get(e);void 0===l&&n.set(e,l=new Map);let a=l.get(t);void 0!==o?void 0===a?(l.set(t,a={handleEvent:o}),e.addEventListener(t,a)):a.handleEvent=o:void 0!==a&&(l.delete(t),e.removeEventListener(t,a))})(e,s,o)},o=({react:n,tagName:o,elementClass:l,events:a,displayName:s})=>{const c=new Set(Object.keys(a??{})),r=n.forwardRef(((s,r)=>{const i=n.useRef(new Map),d=n.useRef(null),f={},u={};for(const[n,t]of Object.entries(s))e.has(n)?f[\"className\"===n?\"class\":n]=t:c.has(n)||n in l.prototype?u[n]=t:f[n]=t;return n.useLayoutEffect((()=>{if(null===d.current)return;const e=new Map;for(const n in u)t(d.current,n,s[n],i.current.get(n),a),i.current.delete(n),e.set(n,s[n]);for(const[e,n]of i.current)t(d.current,e,void 0,n,a);i.current=e})),n.useLayoutEffect((()=>{d.current?.removeAttribute(\"defer-hydration\")}),[]),f.suppressHydrationWarning=!0,n.createElement(o,{...f,ref:n.useCallback((e=>{d.current=e,\"function\"==typeof r?r(e):null!==r&&(r.current=e)}),[r])})}));return r.displayName=s??l.name,r};export{o as createComponent};\n//# sourceMappingURL=create-component.js.map\n","import { createComponent as a } from \"@lit/react\";\nconst i = ({\n defineCustomElement: e,\n ...r\n}) => (typeof e < \"u\" && e(), a(r)), p = ({\n hydrateModule: e,\n properties: r,\n tagName: n\n}) => async (t) => {\n const { createComponentForServerSideRendering: o } = await import(\"./ssr.js\");\n return o({\n tagName: n,\n properties: r,\n renderToString: (await e).renderToString\n })(t);\n};\nexport {\n i as createComponent,\n p as createSSRComponent\n};\n","'use client';\n\n/**\n * This file was automatically generated by the Stencil React Output Target.\n * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\n/* eslint-disable */\n\nimport { SearchcraftAd as SearchcraftAdElement, defineCustomElement as defineSearchcraftAd } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-ad.js\";\nimport { SearchcraftBaseSearchResult as SearchcraftBaseSearchResultElement, defineCustomElement as defineSearchcraftBaseSearchResult } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-base-search-result.js\";\nimport { SearchcraftBaseSearchResults as SearchcraftBaseSearchResultsElement, defineCustomElement as defineSearchcraftBaseSearchResults } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-base-search-results.js\";\nimport { SearchcraftButton as SearchcraftButtonElement, defineCustomElement as defineSearchcraftButton } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-button.js\";\nimport { SearchcraftErrorMessage as SearchcraftErrorMessageElement, defineCustomElement as defineSearchcraftErrorMessage } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-error-message.js\";\nimport { SearchcraftFacetList as SearchcraftFacetListElement, defineCustomElement as defineSearchcraftFacetList } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-facet-list.js\";\nimport { SearchcraftFilterPanel as SearchcraftFilterPanelElement, defineCustomElement as defineSearchcraftFilterPanel } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-filter-panel.js\";\nimport { SearchcraftInputForm as SearchcraftInputFormElement, defineCustomElement as defineSearchcraftInputForm } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-input-form.js\";\nimport { SearchcraftInputLabel as SearchcraftInputLabelElement, defineCustomElement as defineSearchcraftInputLabel } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-input-label.js\";\nimport { SearchcraftPagination as SearchcraftPaginationElement, defineCustomElement as defineSearchcraftPagination } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-pagination.js\";\nimport { SearchcraftPopoverButton as SearchcraftPopoverButtonElement, defineCustomElement as defineSearchcraftPopoverButton } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-button.js\";\nimport { SearchcraftPopoverForm as SearchcraftPopoverFormElement, defineCustomElement as defineSearchcraftPopoverForm } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-form.js\";\nimport { SearchcraftPopoverListItem as SearchcraftPopoverListItemElement, defineCustomElement as defineSearchcraftPopoverListItem } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-list-item.js\";\nimport { SearchcraftPopoverListView as SearchcraftPopoverListViewElement, defineCustomElement as defineSearchcraftPopoverListView } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-list-view.js\";\nimport { SearchcraftResultsInfo as SearchcraftResultsInfoElement, defineCustomElement as defineSearchcraftResultsInfo } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-results-info.js\";\nimport { SearchcraftSearchResultsPerPage as SearchcraftSearchResultsPerPageElement, defineCustomElement as defineSearchcraftSearchResultsPerPage } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-search-results-per-page.js\";\nimport { SearchcraftSelect as SearchcraftSelectElement, defineCustomElement as defineSearchcraftSelect } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-select.js\";\nimport { SearchcraftSlider as SearchcraftSliderElement, defineCustomElement as defineSearchcraftSlider } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-slider.js\";\nimport { SearchcraftTheme as SearchcraftThemeElement, defineCustomElement as defineSearchcraftTheme } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-theme.js\";\nimport { SearchcraftToggleButton as SearchcraftToggleButtonElement, defineCustomElement as defineSearchcraftToggleButton } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-toggle-button.js\";\nimport type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime';\nimport { createComponent } from '@stencil/react-output-target/runtime';\nimport React from 'react';\n\ntype SearchcraftAdEvents = NonNullable<unknown>;\n\nexport const SearchcraftAd: StencilReactComponent<SearchcraftAdElement, SearchcraftAdEvents> = /*@__PURE__*/ createComponent<SearchcraftAdElement, SearchcraftAdEvents>({\n tagName: 'searchcraft-ad',\n elementClass: SearchcraftAdElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftAdEvents,\n defineCustomElement: defineSearchcraftAd\n});\n\ntype SearchcraftBaseSearchResultEvents = NonNullable<unknown>;\n\nexport const SearchcraftBaseSearchResult: StencilReactComponent<SearchcraftBaseSearchResultElement, SearchcraftBaseSearchResultEvents> = /*@__PURE__*/ createComponent<SearchcraftBaseSearchResultElement, SearchcraftBaseSearchResultEvents>({\n tagName: 'searchcraft-base-search-result',\n elementClass: SearchcraftBaseSearchResultElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftBaseSearchResultEvents,\n defineCustomElement: defineSearchcraftBaseSearchResult\n});\n\ntype SearchcraftBaseSearchResultsEvents = NonNullable<unknown>;\n\nexport const SearchcraftBaseSearchResults: StencilReactComponent<SearchcraftBaseSearchResultsElement, SearchcraftBaseSearchResultsEvents> = /*@__PURE__*/ createComponent<SearchcraftBaseSearchResultsElement, SearchcraftBaseSearchResultsEvents>({\n tagName: 'searchcraft-base-search-results',\n elementClass: SearchcraftBaseSearchResultsElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftBaseSearchResultsEvents,\n defineCustomElement: defineSearchcraftBaseSearchResults\n});\n\ntype SearchcraftButtonEvents = { onButtonClick: EventName<CustomEvent<void>> };\n\nexport const SearchcraftButton: StencilReactComponent<SearchcraftButtonElement, SearchcraftButtonEvents> = /*@__PURE__*/ createComponent<SearchcraftButtonElement, SearchcraftButtonEvents>({\n tagName: 'searchcraft-button',\n elementClass: SearchcraftButtonElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onButtonClick: 'buttonClick' } as SearchcraftButtonEvents,\n defineCustomElement: defineSearchcraftButton\n});\n\ntype SearchcraftErrorMessageEvents = NonNullable<unknown>;\n\nexport const SearchcraftErrorMessage: StencilReactComponent<SearchcraftErrorMessageElement, SearchcraftErrorMessageEvents> = /*@__PURE__*/ createComponent<SearchcraftErrorMessageElement, SearchcraftErrorMessageEvents>({\n tagName: 'searchcraft-error-message',\n elementClass: SearchcraftErrorMessageElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftErrorMessageEvents,\n defineCustomElement: defineSearchcraftErrorMessage\n});\n\ntype SearchcraftFacetListEvents = { onFacetSelectionUpdated: EventName<CustomEvent<{ paths: string[] }>> };\n\nexport const SearchcraftFacetList: StencilReactComponent<SearchcraftFacetListElement, SearchcraftFacetListEvents> = /*@__PURE__*/ createComponent<SearchcraftFacetListElement, SearchcraftFacetListEvents>({\n tagName: 'searchcraft-facet-list',\n elementClass: SearchcraftFacetListElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onFacetSelectionUpdated: 'facetSelectionUpdated' } as SearchcraftFacetListEvents,\n defineCustomElement: defineSearchcraftFacetList\n});\n\ntype SearchcraftFilterPanelEvents = NonNullable<unknown>;\n\nexport const SearchcraftFilterPanel: StencilReactComponent<SearchcraftFilterPanelElement, SearchcraftFilterPanelEvents> = /*@__PURE__*/ createComponent<SearchcraftFilterPanelElement, SearchcraftFilterPanelEvents>({\n tagName: 'searchcraft-filter-panel',\n elementClass: SearchcraftFilterPanelElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftFilterPanelEvents,\n defineCustomElement: defineSearchcraftFilterPanel\n});\n\ntype SearchcraftInputFormEvents = {\n onInputFocus: EventName<CustomEvent<void>>,\n onInputBlur: EventName<CustomEvent<void>>,\n onInputInit: EventName<CustomEvent<void>>\n};\n\nexport const SearchcraftInputForm: StencilReactComponent<SearchcraftInputFormElement, SearchcraftInputFormEvents> = /*@__PURE__*/ createComponent<SearchcraftInputFormElement, SearchcraftInputFormEvents>({\n tagName: 'searchcraft-input-form',\n elementClass: SearchcraftInputFormElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {\n onInputFocus: 'inputFocus',\n onInputBlur: 'inputBlur',\n onInputInit: 'inputInit'\n } as SearchcraftInputFormEvents,\n defineCustomElement: defineSearchcraftInputForm\n});\n\ntype SearchcraftInputLabelEvents = NonNullable<unknown>;\n\nexport const SearchcraftInputLabel: StencilReactComponent<SearchcraftInputLabelElement, SearchcraftInputLabelEvents> = /*@__PURE__*/ createComponent<SearchcraftInputLabelElement, SearchcraftInputLabelEvents>({\n tagName: 'searchcraft-input-label',\n elementClass: SearchcraftInputLabelElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftInputLabelEvents,\n defineCustomElement: defineSearchcraftInputLabel\n});\n\ntype SearchcraftPaginationEvents = NonNullable<unknown>;\n\nexport const SearchcraftPagination: StencilReactComponent<SearchcraftPaginationElement, SearchcraftPaginationEvents> = /*@__PURE__*/ createComponent<SearchcraftPaginationElement, SearchcraftPaginationEvents>({\n tagName: 'searchcraft-pagination',\n elementClass: SearchcraftPaginationElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPaginationEvents,\n defineCustomElement: defineSearchcraftPagination\n});\n\ntype SearchcraftPopoverButtonEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverButton: StencilReactComponent<SearchcraftPopoverButtonElement, SearchcraftPopoverButtonEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverButtonElement, SearchcraftPopoverButtonEvents>({\n tagName: 'searchcraft-popover-button',\n elementClass: SearchcraftPopoverButtonElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverButtonEvents,\n defineCustomElement: defineSearchcraftPopoverButton\n});\n\ntype SearchcraftPopoverFormEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverForm: StencilReactComponent<SearchcraftPopoverFormElement, SearchcraftPopoverFormEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverFormElement, SearchcraftPopoverFormEvents>({\n tagName: 'searchcraft-popover-form',\n elementClass: SearchcraftPopoverFormElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverFormEvents,\n defineCustomElement: defineSearchcraftPopoverForm\n});\n\ntype SearchcraftPopoverListItemEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverListItem: StencilReactComponent<SearchcraftPopoverListItemElement, SearchcraftPopoverListItemEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverListItemElement, SearchcraftPopoverListItemEvents>({\n tagName: 'searchcraft-popover-list-item',\n elementClass: SearchcraftPopoverListItemElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverListItemEvents,\n defineCustomElement: defineSearchcraftPopoverListItem\n});\n\ntype SearchcraftPopoverListViewEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverListView: StencilReactComponent<SearchcraftPopoverListViewElement, SearchcraftPopoverListViewEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverListViewElement, SearchcraftPopoverListViewEvents>({\n tagName: 'searchcraft-popover-list-view',\n elementClass: SearchcraftPopoverListViewElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverListViewEvents,\n defineCustomElement: defineSearchcraftPopoverListView\n});\n\ntype SearchcraftResultsInfoEvents = NonNullable<unknown>;\n\nexport const SearchcraftResultsInfo: StencilReactComponent<SearchcraftResultsInfoElement, SearchcraftResultsInfoEvents> = /*@__PURE__*/ createComponent<SearchcraftResultsInfoElement, SearchcraftResultsInfoEvents>({\n tagName: 'searchcraft-results-info',\n elementClass: SearchcraftResultsInfoElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftResultsInfoEvents,\n defineCustomElement: defineSearchcraftResultsInfo\n});\n\ntype SearchcraftSearchResultsPerPageEvents = NonNullable<unknown>;\n\nexport const SearchcraftSearchResultsPerPage: StencilReactComponent<SearchcraftSearchResultsPerPageElement, SearchcraftSearchResultsPerPageEvents> = /*@__PURE__*/ createComponent<SearchcraftSearchResultsPerPageElement, SearchcraftSearchResultsPerPageEvents>({\n tagName: 'searchcraft-search-results-per-page',\n elementClass: SearchcraftSearchResultsPerPageElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftSearchResultsPerPageEvents,\n defineCustomElement: defineSearchcraftSearchResultsPerPage\n});\n\ntype SearchcraftSelectEvents = { onSelectChange: EventName<CustomEvent<string>> };\n\nexport const SearchcraftSelect: StencilReactComponent<SearchcraftSelectElement, SearchcraftSelectEvents> = /*@__PURE__*/ createComponent<SearchcraftSelectElement, SearchcraftSelectEvents>({\n tagName: 'searchcraft-select',\n elementClass: SearchcraftSelectElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onSelectChange: 'selectChange' } as SearchcraftSelectEvents,\n defineCustomElement: defineSearchcraftSelect\n});\n\ntype SearchcraftSliderEvents = { onRangeChanged: EventName<CustomEvent<any>> };\n\nexport const SearchcraftSlider: StencilReactComponent<SearchcraftSliderElement, SearchcraftSliderEvents> = /*@__PURE__*/ createComponent<SearchcraftSliderElement, SearchcraftSliderEvents>({\n tagName: 'searchcraft-slider',\n elementClass: SearchcraftSliderElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onRangeChanged: 'rangeChanged' } as SearchcraftSliderEvents,\n defineCustomElement: defineSearchcraftSlider\n});\n\ntype SearchcraftThemeEvents = NonNullable<unknown>;\n\nexport const SearchcraftTheme: StencilReactComponent<SearchcraftThemeElement, SearchcraftThemeEvents> = /*@__PURE__*/ createComponent<SearchcraftThemeElement, SearchcraftThemeEvents>({\n tagName: 'searchcraft-theme',\n elementClass: SearchcraftThemeElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftThemeEvents,\n defineCustomElement: defineSearchcraftTheme\n});\n\ntype SearchcraftToggleButtonEvents = { onToggleUpdated: EventName<CustomEvent<boolean>> };\n\nexport const SearchcraftToggleButton: StencilReactComponent<SearchcraftToggleButtonElement, SearchcraftToggleButtonEvents> = /*@__PURE__*/ createComponent<SearchcraftToggleButtonElement, SearchcraftToggleButtonEvents>({\n tagName: 'searchcraft-toggle-button',\n elementClass: SearchcraftToggleButtonElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onToggleUpdated: 'toggleUpdated' } as SearchcraftToggleButtonEvents,\n defineCustomElement: defineSearchcraftToggleButton\n});\n","import type { FC } from 'react';\n\nimport { SearchcraftBaseSearchResults as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The props for the SearchcraftBaseSearchResults component.\n */\ninterface SearchcraftBaseSearchResultsProps\n extends Components.SearchcraftBaseSearchResults {}\n\n/**\n * A component that renders a list of search results with customizable styles, layout, and link behavior.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftBaseSearchResults } from '@searchcraft/react-sdk';\n * import searchResultMappings from './searchResultMappings';\n *\n * const MySearchComponent = () => {\n * return (\n * <SearchcraftBaseSearchResults\n * searchResultMappings={searchResultMappings}\n * resultImagePlacement=\"left\"\n * buttonLabel=\"View More\"\n * buttonTarget=\"_blank\"\n * buttonRel=\"noopener\"\n * containerTarget=\"_self\"\n * containerRel=\"nofollow\"\n * onNoResults={() => console.log(\"No search results found\")}\n * />\n * );\n * };\n *\n * export default MySearchComponent;\n * ```\n */\nconst SearchcraftBaseSearchResults: FC<SearchcraftBaseSearchResultsProps> = (\n props,\n) => <Component {...props} />;\n\nexport { SearchcraftBaseSearchResults };\nexport type { SearchcraftBaseSearchResultsProps };\n","import type { FC } from 'react';\n\nimport { SearchcraftFilterPanel as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The props for the SearchcraftFilterPanel.\n */\ninterface SearchcraftFilterPanelProps\n extends Components.SearchcraftFilterPanel {}\n\n/**\n * A component that represents a filter panel UI view, allowing users to refine and control their search queries by applying various filter criteria.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftFilterPanel } from '@searchcraft/react-sdk';\n * import filterItems from './filterItems';\n *\n * const MyFilterComponent = () => {\n * return (\n * <SearchcraftFilterPanel items={filterItems} />\n * );\n * };\n *\n * export default MyFilterComponent;\n * ```\n */\nconst SearchcraftFilterPanel: FC<SearchcraftFilterPanelProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftFilterPanel };\nexport type { SearchcraftFilterPanelProps };\n","import type { FC } from 'react';\n\nimport { SearchcraftInputForm as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The props for the SearchcraftInputForm.\n */\ninterface SearchcraftInputFormProps extends Components.SearchcraftInputForm {}\n\n/**\n * A component that provides a user-friendly interface for querying an indexed dataset,\n * enabling users to easily search large collections of data. It abstracts the complexities\n * of index-based searching, making it accessible to users of all technical levels.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftInputForm } from '@searchcraft/react-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n *\n * const MySearchComponent = () => {\n * const handleQuerySubmit = (event: CustomEvent<string>) => {\n * console.log(\"Query submitted\", event.detail);\n * };\n *\n * return (\n * <SearchcraftInputForm\n * config={searchcraftConfig}\n * autoSearch={true}\n * buttonPlacement=\"right\"\n * buttonLabel=\"Search\"\n * inputLabel=\"Search Database\"\n * customStyles={{ border: \"1px solid gray\", padding: \"5px\" }}\n * placeholderValue=\"Search here...\"\n * searchTerm=\"\"\n * onQuerySubmit={handleQuerySubmit}\n * onInputCleared={() => console.log(\"Input cleared\")}\n * onNoResultsReceived={() => console.log(\"No results found\")}\n * onInputFocus={() => console.log(\"Input focused\")}\n * onInputBlur={() => console.log(\"Input blurred\")}\n * onInputInit={() => console.log(\"Input initialized\")}\n * />\n * );\n * };\n *\n * export default MySearchComponent;\n * ```\n */\nconst SearchcraftInputForm: FC<SearchcraftInputFormProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftInputForm };\nexport type { SearchcraftInputFormProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverButton as Component } from '../stencil-web-components/components';\n\n/**\n * The props for the SearchcraftPopoverButton.\n */\ninterface SearchcraftPopoverButtonProps\n extends Components.SearchcraftPopoverButton {}\n\n/**\n * A button component that, when clicked, toggles the visibility of a popover.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftPopoverButton } from '@searchcraft/react-sdk';\n *\n * const MyPopoverTrigger = () => {\n * return (\n * <SearchcraftPopoverButton>\n * Open Popover\n * </SearchcraftPopoverButton>\n * );\n * };\n *\n * export default MyPopoverTrigger;\n * ```\n */\nconst SearchcraftPopoverButton: FC<SearchcraftPopoverButtonProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftPopoverButton };\nexport type { SearchcraftPopoverButtonProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverForm as Component } from '../stencil-web-components/components';\n\n/**\n * The props for the SearchcraftPopoverForm component.\n */\ninterface SearchcraftPopoverFormProps\n extends Components.SearchcraftPopoverForm {}\n\n/**\n * A component that displays search results in a popover container that dynamically appears\n * when the user interacts with a search input field, or when a popover button is clicked.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftPopoverForm } from '@searchcraft/react-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n * import popoverResultMappings from './popoverResultMappings';\n *\n * const MyPopoverSearch = () => {\n * return (\n * <SearchcraftPopoverForm\n * config={searchcraftConfig}\n * type=\"fullscreen\"\n * popoverResultMappings={popoverResultMappings}\n * hotkey=\"k\"\n * hotkeyModifier=\"meta\"\n * />\n * );\n * };\n *\n * export default MyPopoverSearch;\n * ```\n */\nconst SearchcraftPopoverForm: FC<SearchcraftPopoverFormProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftPopoverForm };\nexport type { SearchcraftPopoverFormProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftResultsInfo as Component } from '../stencil-web-components/components';\n\n/**\n * The Props for the SearchcraftResultsInfo component.\n */\ninterface SearchcraftResultsInfoProps\n extends Components.SearchcraftResultsInfo {}\n\n/**\n * This React component is designed to display the number of results returned from a search query.\n *\n * @example\n * ```tsx\n * import React, { useEffect, useRef } from 'react';\n * import { SearchcraftResultsInfo } from '@searchcraft/react-sdk';\n *\n * const MyResultsInfo = () => {\n * const ref = useRef();\n *\n * useEffect(() => {\n * ref.current.customFormatter = (range, count, responseTime) =>\n * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;\n * });\n *\n * return <SearchcraftResultsInfo ref={ref} />;\n * };\n *\n * export default MyResultsInfo;\n * ```\n */\nconst SearchcraftResultsInfo: FC<SearchcraftResultsInfoProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftResultsInfo };\nexport type { SearchcraftResultsInfoProps };\n","import type { FC } from 'react';\n\nimport { SearchcraftTheme as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The Props for the SearchcraftTheme component.\n */\ninterface SearchcraftThemeProps extends Components.SearchcraftTheme {}\n\n/**\n * A component that applies Searchcraft's built-in CSS theme to your page.\n * It does not render anything visible—its only function is to manage the CSS styles on the page.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftTheme } from '@searchcraft/react-sdk';\n *\n * const MyThemeProvider = () => {\n * return <SearchcraftTheme theme=\"light\" customTheme={'[]'} />;\n * };\n *\n * export default MyThemeProvider;\n * ```\n */\nconst SearchcraftTheme: FC<SearchcraftThemeProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftTheme };\nexport type { SearchcraftThemeProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftPagination as Component } from '../stencil-web-components/components';\n\n/**\n * The props for the SearchcraftPagination component.\n */\ninterface SearchcraftPaginationProps extends Components.SearchcraftPagination {}\n\n/**\n * This React component is designed to facilitate pagination of search results.\n * Once a query is submitted, calculates the number for pages.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftPagination } from '@searchcraft/react-sdk';\n *\n * const MyPaginationComponent = () => {\n * return (\n * // other searchcraft components\n * <SearchcraftPagination />\n * );\n * };\n *\n * export default MyPaginationComponent;\n * ```\n */\nconst SearchcraftPagination: FC<SearchcraftPaginationProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftPagination };\nexport type { SearchcraftPaginationProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftSearchResultsPerPage as Component } from '../stencil-web-components/components';\n\n/**\n * The Props for the SearchcraftSearchResultsPerPage component.\n */\ninterface SearchcraftSearchResultsPerPageProps\n extends Components.SearchcraftSearchResultsPerPage {}\n\n/**\n * This React component is designed to choose the number of search results displayed.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftSearchResultsPerPage } from '@searchcraft/react-sdk';\n *\n * const MyResultsPerPage = () => {\n * return <SearchcraftSearchResultsPerPage increment={20} />;\n * };\n *\n * export default MyResultsPerPage;\n * ```\n */\nconst SearchcraftSearchResultsPerPage: FC<\n SearchcraftSearchResultsPerPageProps\n> = (props) => <Component {...props} />;\n\nexport { SearchcraftSearchResultsPerPage };\nexport type { SearchcraftSearchResultsPerPageProps };\n","import { type SearchcraftConfig, SearchcraftCore } from '@searchcraft/core';\nimport packageJson from '../package.json';\n\n/**\n * Entry file for @searchcraft/react-sdk\n */\nexport * from './components';\n\n/**\n * The consumer-facing Searchcraft class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(config: SearchcraftConfig) {\n super(config, {\n sdkName: packageJson.name,\n sdkVersion: packageJson.version,\n });\n }\n}\n"],"names":["L","q","n","h","w","o","a","i","e","u","l","s","g","y","b","O","N","v","j","M","f","p","I","G","W","V","U","$","H","D","z","E","K","k","_","C","Q","J","P","Y","X","Z","ee","te","m","ne","d","B","x","T","S","re","A","R","oe","c","ie","ae","se","ue","t","r","ce","de","le","he","ge","NAMESPACE","BUILD","__defProp","__export","target","all","name","SVG_NS","HTML_NS","reWireGetterSetter","instance","hostRef","_a","cmpMeta","memberName","memberFlags","ogValue","ogDescriptor","newValue","hostRefs","deleteHostRef","ref","getHostRef","registerHost","hostElement","isMemberInElement","elm","consoleError","el","win","doc","plt","h2","eventName","listener","opts","supportsShadow","promiseResolve","queuePending","queueDomReads","queueDomWrites","queueTask","queue","write","cb","nextTick","flush","consume","i2","writeTask","isComplexType","result_exports","err","map","ok","unwrap","unwrapErr","value","result","fn","val","newVal","updateFallbackSlotVisibility","childNodes","getHostSlotNodes","slotNode","getHostSlotChildNodes","childNode","hostName","slotName","slottedNodes","node","includeSlot","isNodeLocatedInSlot","nodeToRelocate","createTime","fnName","tagName","nodeName","vnodeData","children","child","key","simple","lastSimple","vNodeChildren","walk","newVNode","classData","vdomFnUtils","vnode","tag","text","Host","isHost","convertToPublic","convertToPrivate","parsePropertyValue","propValue","propType","getElement","createEvent","flags","detail","emitEvent","ev","rootAppliedStyles","setAccessor","oldValue","isSvg","isProp","ln","classList","oldClasses","parseClassList","newClasses","prop","capture","CAPTURE_EVENT_SUFFIX","CAPTURE_EVENT_REGEX","isComplex","parseClassListRegex","updateElement","oldVnode","newVnode","isSvgMode2","oldVnodeAttrs","newVnodeAttrs","sortedAttrNames","attrNames","attr","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","createElm","oldParentVNode","newParentVNode","childIndex","newVNode2","oldVNode","putBackInOriginalLocation","parentElm","recursive","oldSlotChildNodes","insertBefore","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","removeVnodes","index","updateChildren","oldCh","newCh","isInitialRender","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","elmToMove","isSameVnode","patch","leftVNode","rightVNode","oldChildren","newChildren","defaultHolder","relocateNodes","markSlotContentForRelocation","hostContentNodes","relocateNodeData","relocateNode","parent","newNode","reference","renderVdom","renderFnResults","isInitialLoad","_b","_c","_d","hostElm","rootVnode","relocateData","orgLocationNode","slotRefNode","parentNodeRef","insertBeforeNode","refNode","nextSibling","attachToAncestor","ancestorComponent","scheduleUpdate","dispatchHooks","endSchedule","maybePromise","enqueue","updateComponent","isPromisey","err2","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","endPostUpdate","addHydratedFlag","safeCall","appDidLoad","who","method","arg","getValue","propName","setValue","oldVal","areBothNaN","watchMethods","watchMethodName","proxyComponent","Cstr","prototype","members","origGetter","origSetter","currentValue","attrNameToPropName","attrName","_a2","flags2","entry","callbackName","propDesc","initializeComponent","hmrVersionId","cmpTag","schedule","fireConnectedCallback","connectedCallback","endConnected","setContentReference","contentRefElm","disconnectedCallback","proxyCustomElement","compactMeta","originalConnectedCallback","originalDisconnectedCallback","Fragment","F","pe","zustand","vanilla$1","createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","createStore","react$1","react","react_production","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","ReactSharedInternals","hasOwnProperty","ReactElement","type","self","source","owner","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","noop$1","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","array","escapedPrefix","nameSoFar","invokeCallback","nextNamePrefix","mapChildren","func","count","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","noop","forEachFunc","forEachContext","config","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","permalink","deps","Context","initialValue","create","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","React","vanilla","identity","useStore","selector","slice","createImpl","useBoundStore","exports","initialSearchcraftStateValues","searchcraftStore","set","get","functions","data","core","searchcraftInstance","debug","logger","fieldName","currentPaths","currentValues","handleSearchcraftResponse","response","items","facetsFromResponse","handleAdResponse","adClientResponseItems","isVisible","mode","searchTerm","page","perPage","commonjsGlobal","purify","module","global","factory","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","apply","construct","fun","thisValue","args","Func","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","thisArg","_len","_key","_len2","_key2","addToSet","transformCaseFunc","lcElement","cleanArray","clone","newObject","property","lookupGetter","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","content","_isBasicCustomElement","parentNode","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","namespaceURI","attrValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","entryPoint","hookFunction","urlAlphabet","nanoid","size","id","bytes","SearchcraftPopoverListItemAd","__publicField","currentState","item","templateRenderFunction","containerId","containerInnerHTML","defineCustomElement","getDocumentValueFromSearchResultMapping","mapping","fieldNameDetails","valueFound","getFormattedTimeFromNow","getMillis","unit","formatNumberWithCommas","number","timestamp","now","inputTime","diffInSeconds","minutes","hours","days","years","SearchcraftBaseSearchResult","searchcraft","document_position","search_term","number_of_documents","_e","_f","_g","styles","imageContainer","contentContainer","parseCustomStyles","serializeStyles","SearchcraftErrorMessage","SearchcraftBaseSearchResults$1","serializedStyles","itemsToRender","interstitialInterval","interstitialQuantity","adStartQuantity","adEndQuantity","searchItems","defineCustomElement$1","defineCustomElement$4","defineCustomElement$3","defineCustomElement$2","SearchcraftBaseSearchResults","classnames","hasOwn","classNames","classes","appendClass","parseValue","newClass","SearchcraftButton","deepMergeWithSpread","obj1","obj2","removeSubstringMatches","arr","otherEntry","otherIndex","facetToRecord","facet","records","traverseAndAddToFragments","facetChild","recordToObject","record","pathParts","currentRoot","currentPath","part","nextPath","objectToFacet","childObject","transformed","subChildObject","filterRecordByParentPaths","record1","record2","paths1","paths2","parentPaths","path","mergeFacetRoots","incomingRoot","currentArray","incomingArray","currentRootFacetChild","incomingRootFacetChild","currentRecord","incomingRecord","filteredCurrentRecord","mergedRecord","mergedObject","mergedFacetChild","SearchcraftFacetList","label","char","facetChildAncestor","facetPrime","timeTaken","incomingFacetRoot","updatedPaths","testPath","acc","str","paths","pathsWithParentPathsRemoved","firstFacet","isChildSelected","_event","grandchild","SearchcraftSlider","inputElement","rangeMin","rangeMax","startPercent","endPercent","startLabel","endLabel","SearchcraftToggleButton","SearchcraftFilterPanel$1","min","max","start","end","isActive","filterItem","granularityValue","SearchcraftFilterPanel","SearchcraftInputLabel","SearchcraftInput","input","validatedCustomStyles","isShowingClearButton","inputGridClassNames","inputGridStyles","SearchcraftInputForm","SearchcraftPagination$1","SearchcraftPagination","SearchcraftPopoverButton$1","SearchcraftPopoverButton","SearchcraftPopoverListItem","SearchcraftPopoverListView","SearchcraftPopoverForm$1","computedStyle","hostElementInput","direction","listItems","currentIndex","isListViewVisible","popoverFormClassNames","defineCustomElement$8","defineCustomElement$7","defineCustomElement$6","defineCustomElement$5","SearchcraftPopoverForm","SearchcraftResultsInfo$1","SearchcraftResultsInfo","SearchcraftSelect","selected","SearchcraftSearchResultsPerPage$1","SearchcraftSearchResultsPerPage","SearchcraftTheme$1","string","styleElement","head","SearchcraftTheme","createComponent","SearchcraftBaseSearchResultsElement","defineSearchcraftBaseSearchResults","SearchcraftFilterPanelElement","defineSearchcraftFilterPanel","SearchcraftInputFormElement","defineSearchcraftInputForm","SearchcraftPaginationElement","defineSearchcraftPagination","SearchcraftPopoverButtonElement","defineSearchcraftPopoverButton","SearchcraftPopoverFormElement","defineSearchcraftPopoverForm","SearchcraftResultsInfoElement","defineSearchcraftResultsInfo","SearchcraftSearchResultsPerPageElement","defineSearchcraftSearchResultsPerPage","SearchcraftThemeElement","defineSearchcraftTheme","jsx","Searchcraft","SearchcraftCore","packageJson"],"mappings":";;;;;AAAA,IAAIA,KAAI,OAAO,gBACXC,KAAI,CAACC,GAAG,GAAG,MAAM,KAAKA,IAAIF,GAAEE,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAC,CAAE,IAAIA,EAAE,CAAC,IAAI,GACzGC,IAAI,CAACD,GAAG,GAAG,MAAMD,GAAEC,GAAG,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,CAAC;AAwC9D,SAASE,GAAEF,GAAG,GAAG,GAAGG,GAAG;AACrB,SAAO,KAAK,MAAM,IAAI,UAAU,SAASC,GAAGC,GAAG;AAC7C,aAASC,EAAEC,GAAG;AACZ,UAAI;AACF,QAAAC,EAAEL,EAAE,KAAKI,CAAC,CAAC;AAAA,MACZ,SAAQE,GAAG;AACV,QAAAJ,EAAEI,CAAC;AAAA,MACX;AAAA,IACA;AACI,aAAS,EAAEF,GAAG;AACZ,UAAI;AACF,QAAAC,EAAEL,EAAE,MAAMI,CAAC,CAAC;AAAA,MACb,SAAQE,GAAG;AACV,QAAAJ,EAAEI,CAAC;AAAA,MACX;AAAA,IACA;AACI,aAASD,EAAED,GAAG;AACZ,UAAIE;AACJ,MAAAF,EAAE,OAAOH,EAAEG,EAAE,KAAK,KAAKE,IAAIF,EAAE,OAAOE,aAAa,IAAIA,IAAI,IAAI,EAAE,SAASC,GAAG;AACzE,QAAAA,EAAED,CAAC;AAAA,MACX,CAAO,GAAG,KAAKH,GAAG,CAAC;AAAA,IACnB;AACI,IAAAE,GAAGL,IAAIA,EAAE,MAAMH,GAAG,CAAE,CAAA,GAAG,MAAM;AAAA,EACjC,CAAG;AACH;AACA,SAASW,GAAEX,GAAG,GAAG;AACf,MAAI,GAAGG,GAAGC,GAAGC,GAAGC,IAAI,EAAE,OAAO,GAAG,MAAM,WAAW;AAC/C,QAAI,IAAIF,EAAE,CAAC,EAAG,OAAMA,EAAE,CAAC;AACvB,WAAOA,EAAE,CAAC;AAAA,EACX,GAAE,MAAM,CAAA,GAAI,KAAK,GAAI;AACtB,SAAOC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAG,GAAE,OAAO,UAAU,eAAeA,EAAE,OAAO,QAAQ,IAAI,WAAW;AACpH,WAAO;AAAA,EACR,IAAGA;AACJ,WAAS,EAAEG,GAAG;AACZ,WAAO,SAASD,GAAG;AACjB,aAAO,SAASE,GAAG;AACjB,YAAI,EAAG,OAAM,IAAI,UAAU,iCAAiC;AAC5D,eAAOJ,MAAMA,IAAI,GAAGI,EAAE,CAAC,MAAMH,IAAI,KAAKA,IAAK,KAAI;AAC7C,cAAI,IAAI,GAAGH,MAAMC,IAAI,IAAIK,EAAE,CAAC,IAAIN,EAAE,SAASM,EAAE,CAAC,IAAIN,EAAE,WAAWC,IAAID,EAAE,WAAWC,EAAE,KAAKD,CAAC,GAAG,KAAKA,EAAE,SAAS,EAAEC,IAAIA,EAAE,KAAKD,GAAGM,EAAE,CAAC,CAAC,GAAG,KAAM,QAAOL;AAC/I,kBAAQD,IAAI,GAAGC,MAAMK,IAAI,CAAC,IAAIA,EAAE,CAAC,GAAGL,EAAE,KAAK,IAAIK,EAAE,CAAC,GAAC;AAAA,YACjD,KAAK;AAAA,YACL,KAAK;AACH,cAAAL,IAAIK;AACJ;AAAA,YACF,KAAK;AACH,qBAAOH,EAAE,SAAS,EAAE,OAAOG,EAAE,CAAC,GAAG,MAAM,GAAI;AAAA,YAC7C,KAAK;AACH,cAAAH,EAAE,SAASH,IAAIM,EAAE,CAAC,GAAGA,IAAI,CAAC,CAAC;AAC3B;AAAA,YACF,KAAK;AACH,cAAAA,IAAIH,EAAE,IAAI,IAAK,GAAEA,EAAE,KAAK,IAAK;AAC7B;AAAA,YACF;AACE,kBAAIF,IAAIE,EAAE,MAAM,GAAGF,IAAIA,EAAE,SAAS,KAAKA,EAAEA,EAAE,SAAS,CAAC,MAAMK,EAAE,CAAC,MAAM,KAAKA,EAAE,CAAC,MAAM,IAAI;AACpF,gBAAAH,IAAI;AACJ;AAAA,cAChB;AACc,kBAAIG,EAAE,CAAC,MAAM,MAAM,CAACL,KAAKK,EAAE,CAAC,IAAIL,EAAE,CAAC,KAAKK,EAAE,CAAC,IAAIL,EAAE,CAAC,IAAI;AACpD,gBAAAE,EAAE,QAAQG,EAAE,CAAC;AACb;AAAA,cAChB;AACc,kBAAIA,EAAE,CAAC,MAAM,KAAKH,EAAE,QAAQF,EAAE,CAAC,GAAG;AAChC,gBAAAE,EAAE,QAAQF,EAAE,CAAC,GAAGA,IAAIK;AACpB;AAAA,cAChB;AACc,kBAAIL,KAAKE,EAAE,QAAQF,EAAE,CAAC,GAAG;AACvB,gBAAAE,EAAE,QAAQF,EAAE,CAAC,GAAGE,EAAE,IAAI,KAAKG,CAAC;AAC5B;AAAA,cAChB;AACc,cAAAL,EAAE,CAAC,KAAKE,EAAE,IAAI,OAAOA,EAAE,KAAK,IAAK;AACjC;AAAA,UACd;AACU,UAAAG,IAAI,EAAE,KAAKT,GAAGM,CAAC;AAAA,QAChB,SAAQI,GAAG;AACV,UAAAD,IAAI,CAAC,GAAGC,CAAC,GAAGP,IAAI;AAAA,QAC1B,UAAkB;AACR,cAAIC,IAAI;AAAA,QAClB;AACQ,YAAI,IAAIK,EAAE,CAAC,EAAG,OAAMA,EAAE,CAAC;AACvB,eAAO,EAAE,OAAOA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,QAAQ,MAAM,GAAI;AAAA,MACxD,EAAQ,CAACD,GAAGD,CAAC,CAAC;AAAA,IACT;AAAA,EACL;AACA;AACA,IAAIK,KAAI,EAAE,SAAS,CAAE,EAAA,GAAIC,KAAI,CAAA,GAAIC,KAAI,EAAE,SAAS,OAAQ,GAAEC,KAAI,SAASf,GAAG,GAAG;AAC3E,SAAO,SAAS,QAAQa,GAAEb,CAAC,IAAI;AACjC,GAAGgB,KAAI,WAAW;AAChB,SAAO,OAAO,YAAY,OAAO,QAAQH,EAAC,EAAE,OAAO,SAASb,GAAG;AAC7D,QAAI,GAAG,IAAIA,EAAE,CAAC;AACd,WAAO,EAAE,GAAG,IAAIY,MAAK,OAAO,SAASA,GAAE,aAAa,QAAQ,MAAM,WAAW,EAAE,SAAS,CAAC;AAAA,EAC7F,CAAG,EAAE,IAAI,SAASZ,GAAG;AACjB,WAAO,CAACA,EAAE,CAAC,OAAOA,EAAE,CAAC,IAAI;AAAA,EAC7B,CAAG,CAAC;AACJ;AACA,SAASiB,GAAEjB,GAAG;AACZ,SAAOA,KAAKA,MAAM,IAAIA,IAAI,KAAK,KAAKA,GAAG,UAAU,GAAGA,KAAKA,MAAM,IAAIA,IAAI,KAAK,KAAKA,GAAG,UAAU,IAAIA,KAAKA,MAAM,QAAQ;AACvH;AACA,IAAIkB,IAAI,IAAI,YAAY,CAAC,WAAW,YAAY,WAAW,UAAU,CAAC;AACtE,SAASC,GAAEnB,GAAG,GAAG;AACf,SAAOA,KAAK,IAAIA,MAAM,KAAK;AAC7B;AACA,SAASoB,GAAEpB,GAAG,GAAG;AACf,MAAI;AACJ,MAAI,MAAM,WAAW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,OAAOA,KAAK,aAAa,IAAIA,GAAGA,IAAI,IAAI,YAAW,EAAG,OAAO,CAAC,EAAE,SAAS,EAAEA,aAAa,aAAc,OAAM,IAAI,UAAU,0CAA0C;AACpN,MAAIG,IAAI,IAAI,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACpC,GAAC,SAASE,GAAGC,GAAG;AACd,aAAS,IAAID,EAAE,aAAa,KAAK,GAAGG,IAAI,IAAI,YAAYH,GAAG,GAAG,IAAI,CAAC,GAAGE,IAAI,GAAGA,IAAI,GAAGA,KAAK;AACvF,UAAIE,IAAID,EAAE,SAAS,IAAID,GAAG,KAAKA,IAAI,EAAE;AACrC,MAAAE,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI,YAAYG,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI,WAAWG,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI,YAAYG,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI;AAAA,IACzsB;AAAA,EACG,GAAEN,GAAGG,CAAC,GAAG,SAASE,GAAGC,GAAG;AACvB,QAAI,IAAID,EAAE,aAAa,KAAK,GAAGG,IAAIH,EAAE,aAAa,IAAIE,IAAI,IAAI,YAAY,CAAC,GAAGE,IAAI,IAAI,WAAWJ,GAAG,KAAK,GAAGG,CAAC;AAC7G,YAAQA,GAAC;AAAA,MACP,KAAK;AACH,QAAAD,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,MAC7H,KAAK;AACH,QAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,MAC5H,KAAK;AACH,QAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,MAC5H,KAAK;AACH,QAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,IAClI;AAAA,EACG,EAACP,GAAGG,CAAC,GAAG,SAASE,GAAGC,GAAG;AACtB,IAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI;AAAA,EACjd,EAAIN,GAAGG,CAAC;AACN,MAAIC,IAAI,IAAI,WAAWD,EAAE,MAAM;AAC/B,SAAO,MAAM,KAAKC,CAAC,EAAE,IAAI,SAASC,GAAG;AACnC,WAAOA,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,EACzC,CAAG,EAAE,KAAK,EAAE;AACZ;AACA,SAASgB,GAAErB,GAAG,GAAG;AACf,SAAO,IAAI,QAAQ,SAAS,GAAG;AAC7B,eAAW,WAAW;AACpB,aAAO,EAAE,CAAC;AAAA,IACX,GAAEA,CAAC;AAAA,EACR,CAAG;AACH;AACA,SAASsB,GAAEtB,GAAG,GAAG,GAAG;AAClB,SAAO,QAAQ,IAAIA,EAAE,IAAI,SAASG,GAAG;AACnC,WAAO,QAAQ,KAAK,CAACA,GAAGkB,GAAE,GAAG,CAAC,CAAC,CAAC;AAAA,EACpC,CAAG,CAAC;AACJ;AACA,SAASE,KAAI;AACX,SAAOrB,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,QAAIF,GAAG,GAAG,GAAGG,GAAGC;AAChB,WAAOO,GAAE,MAAM,SAASN,GAAG;AACzB,cAAQA,EAAE,OAAK;AAAA,QACb,KAAK;AACH,iBAAOA,EAAE,KAAK,KAAK,CAAC,GAAG,GAAK,EAAA,CAAC,CAAC,GAAGL,IAAIgB,GAAC,GAAI,IAAI,OAAO,KAAKhB,CAAC,GAAG,CAAC,GAAGsB,GAAE,OAAO,OAAOtB,CAAC,IAAIY,MAAK,OAAO,SAASA,GAAE,YAAY,KAAKE,EAAC,CAAC;AAAA,QACnI,KAAK;AACH,iBAAO,IAAIT,EAAE,KAAM,GAAEF,IAAI,EAAE,OAAO,SAASG,GAAG;AAC5C,mBAAOA,MAAM;AAAA,UACzB,CAAW,GAAGF,IAAI,IAAID,EAAE,QAAQ,SAASG,GAAG,GAAG;AACnC,YAAAF,EAAE,EAAE,CAAC,CAAC,IAAIE;AAAA,UACtB,CAAW,GAAG,CAAC,GAAGkB,GAAEpB,GAAGQ,GAAE,WAAW,CAAA,CAAE,CAAC;AAAA,QAC/B,KAAK;AACH,gBAAMP,EAAE,KAAM;AAAA,QAChB,KAAK;AACH,iBAAO,CAAC,CAAC;AAAA,MACnB;AAAA,IACA,CAAK;AAAA,EACL,CAAG;AACH;AACA,SAASmB,GAAExB,GAAG,GAAG;AACf,MAAI,IAAI,CAAA,GAAIG,IAAI,SAASE,GAAG;AAC1B,QAAIL,EAAE,eAAeK,CAAC,GAAG;AACvB,UAAIC,IAAIN,EAAEK,CAAC;AACX,UAAI,OAAOC,KAAK,YAAY,MAAM,QAAQA,CAAC,EAAG,GAAE,SAASD,CAAC,MAAM,EAAEA,CAAC,IAAIC;AAAA,WAClE;AACH,YAAI,IAAIkB,GAAElB,GAAG,EAAE,IAAI,SAASE,GAAG;AAC7B,iBAAOA,EAAE,WAAWH,IAAI,GAAG,IAAIG,EAAE,MAAMH,EAAE,SAAS,CAAC,IAAIG;AAAA,QACjE,CAAS,CAAC;AACF,eAAO,KAAK,CAAC,EAAE,SAAS,MAAM,EAAEH,CAAC,IAAI;AAAA,MAC7C;AAAA,IACA;AAAA,EACG;AACD,WAASD,KAAKJ,EAAG,CAAAG,EAAEC,CAAC;AACpB,SAAO;AACT;AACA,SAASqB,GAAEzB,GAAG;AACZ,SAAOE,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,QAAI,GAAG;AACP,WAAOS,GAAE,MAAM,SAASR,GAAG;AACzB,cAAQA,EAAE,OAAK;AAAA,QACb,KAAK;AACH,iBAAOA,EAAE,KAAK,KAAK,CAAC,GAAG,GAAK,EAAA,CAAC,CAAC,GAAG,CAAC,GAAGoB,GAAC,CAAE;AAAA,QAC1C,KAAK;AACH,iBAAO,IAAIpB,EAAE,KAAI,GAAI,IAAIiB,GAAE,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,SAAQ,CAAE;AAAA,QACjE,KAAK;AACH,gBAAMjB,EAAE,KAAM;AAAA,QAChB,KAAK;AACH,iBAAO,CAAC,CAAC;AAAA,MACnB;AAAA,IACA,CAAK;AAAA,EACL,CAAG;AACH;AACA,SAASuB,GAAE1B,GAAG;AACZ,WAAS,IAAI,GAAG,IAAI,GAAG,IAAIA,EAAE,QAAQ,EAAE,EAAG,MAAK,KAAK,IAAIA,EAAE,CAAC,CAAC;AAC5D,SAAO;AACT;AACA,SAAS2B,GAAE3B,GAAG,GAAG,GAAG;AAClB,WAASG,IAAI,IAAIC,IAAI,GAAGA,IAAIJ,EAAE,CAAC,EAAE,KAAK,QAAQI,KAAK;AACjD,aAASC,IAAI,IAAIC,IAAI,GAAGA,IAAIN,EAAE,QAAQM,IAAK,CAAAD,EAAE,KAAKL,EAAEM,CAAC,EAAE,KAAKF,CAAC,CAAC;AAC9D,IAAAD,EAAE,KAAKyB,GAAEvB,CAAC,CAAC;AAAA,EACf;AACE,MAAI,IAAI,IAAI,kBAAkBF,CAAC;AAC/B,SAAO,IAAI,UAAU,GAAG,GAAG,CAAC;AAC9B;AACA,SAASyB,GAAE5B,GAAG;AACZ,MAAIA,EAAE,WAAW,EAAG,QAAO;AAC3B,WAAS,IAAI,IAAI,IAAI,GAAGG,IAAIH,GAAG,IAAIG,EAAE,QAAQ;AAC3C,MAAEE,IAAIF,EAAE,CAAC,CAAC,KAAK,EAAEE,CAAC,KAAK,KAAK;AAC9B,MAAID,IAAIJ,EAAE,CAAC;AACX,WAASK,KAAK,EAAG,GAAEA,CAAC,IAAI,EAAED,CAAC,MAAMA,IAAI,SAASC,GAAG,EAAE;AACnD,SAAOD;AACT;AACA,SAASyB,KAAI;AACX,MAAI,OAAO,YAAY,IAAK,QAAO,EAAE,MAAM,WAAW,SAAS,UAAW;AAC1E,WAAS7B,IAAI,UAAU,WAAW,IAAI,EAAE,KAAK,QAAQ,KAAK,WAAW,IAAI,GAAGG,IAAI,CAAC,gDAAgD,mFAAmF,6EAA6E,8CAA8C,8DAA8D,iDAAiD,oDAAoD,GAAG,IAAIA,EAAE,QAAQ,KAAK;AACtgB,QAAIC,IAAID,EAAE,CAAC,GAAGE,IAAIL,EAAE,MAAMI,CAAC;AAC3B,QAAIC,KAAKA,EAAE,OAAQ,QAAO,EAAE,MAAM,EAAEA,EAAE,OAAO,IAAI,KAAKA,EAAE,OAAO,MAAM,SAASA,EAAE,OAAO,QAAS;AAAA,EACpG;AACE,SAAO,EAAE,MAAM,WAAW,SAAS,UAAW;AAChD;AACAU,GAAE,SAAS,WAAW;AACpB,SAAOb,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,WAAOS,GAAE,MAAM,SAASX,GAAG;AACzB,aAAO,CAAC,GAAG,IAAI,QAAQ,SAAS,GAAG,GAAG;AACpC,YAAI;AACF,cAAIG,IAAI,KAAK,OAAO,uBAAuB,OAAO,2BAA2B,GAAG,KAAK,KAAK,GAAGC,IAAID,EAAE,mBAAoB,GAAEE,IAAIF,EAAE,iBAAkB;AACjJ,UAAAE,EAAE,UAAU,QAAQ;AACpB,cAAIC,GAAG,IAAIH,EAAE,yBAA0B;AACvC,YAAE,UAAU,QAAQ,KAAK,EAAE,KAAK,QAAQ,IAAI,EAAE,MAAM,QAAQ,IAAI,EAAE,OAAO,QAAQ,GAAG,EAAE,QAAQ,QAAQ,KAAKE,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQF,EAAE,WAAW,GAAGE,EAAE,MAAK,GAAIF,EAAE,aAAa,SAASK,GAAG;AACvL,YAAAF,IAAIE,EAAE,eAAe,eAAe,CAAC,GAAG,EAAE,EAAE,YAAYkB,GAAEpB,CAAC,GAAG,YAAYD,EAAE,MAAM,aAAaF,EAAE,YAAY,iBAAiB,kBAAkBC,EAAE,kBAAkB;AAAA,UAChL,GAAaD,EAAE,eAAgB;AAAA,QACtB,SAAQK,GAAG;AACV,kBAAQ,MAAM,qCAAqCA,CAAC,GAAG,EAAEA,CAAC;AAAA,QACpE;AAAA,MACA,CAAO,CAAC;AAAA,IACR,CAAK;AAAA,EACL,CAAG;AACH,CAAC;AACD,IAAIsB,KAAID,KAAI,SAAS,mBAAmB,IAAI,GAAGE,KAAI,KAAKC,KAAI;AAC5DH,GAAC,EAAG,QAAQ,aAAad,GAAE,UAAU,WAAW;AAC9C,SAAO,SAAS,cAAc,QAAQ,EAAE,WAAW,IAAI,GAAG,IAAI,QAAQ,SAASf,GAAG;AAChF,QAAI,IAAI,MAAM,KAAK,EAAE,QAAQ8B,GAAC,GAAI,WAAW;AAC3C,aAAO,WAAW;AAChB,YAAI,IAAI,SAAS,cAAc,QAAQ,GAAG3B,IAAI,EAAE,WAAW,IAAI;AAC/D,YAAI,CAACA,EAAG,QAAO,IAAI,UAAU,GAAG,CAAC;AACjC,UAAE,QAAQ4B,IAAG,EAAE,SAASC;AACxB,YAAI5B,IAAID,EAAE,qBAAqB,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AACtD,QAAAC,EAAE,aAAa,GAAG,KAAK,GAAGA,EAAE,aAAa,qBAAqB,QAAQ,GAAGA,EAAE,aAAa,oBAAoB,QAAQ,GAAGA,EAAE,aAAa,KAAK,OAAO,GAAGA,EAAE,aAAa,oBAAoB,MAAM,GAAGA,EAAE,aAAa,oBAAoB,QAAQ,GAAGA,EAAE,aAAa,GAAG,QAAQ,GAAGD,EAAE,YAAYC,GAAGD,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AAC/T,YAAIE,IAAI;AACR,QAAAF,EAAE,OAAO,kBAAkBA,EAAE,YAAY,SAASA,EAAE,SAASE,GAAG,IAAI,EAAE,GAAGF,EAAE,YAAY,wBAAwBA,EAAE,SAASE,GAAG,MAAM,IAAI,GAAGF,EAAE,UAAW,GAAEA,EAAE,OAAO,GAAG,CAAC,GAAGA,EAAE,OAAO,IAAI,EAAE,QAAQ,GAAG,EAAE,MAAM,GAAGA,EAAE,cAAc,SAASA,EAAE,YAAY,GAAGA,EAAE,OAAQ;AAClQ,YAAIG,IAAIH,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AAC9C,eAAOG;AAAA,MACf,EAAS;AAAA,IACT,CAAK;AACD,IAAAN,EAAE,EAAE,qBAAqBoB,GAAEO,GAAE,GAAGI,IAAGC,EAAC,EAAE,KAAK,SAAU,CAAA,EAAE,SAAU,EAAA,CAAE;AAAA,EACvE,CAAG;AACH,CAAC;AACD,IAAIC,IAAGC,KAAI,CAAC,SAAS,eAAe,gBAAgB,oBAAoB,SAAS,WAAW,UAAU,cAAc,UAAU,WAAW,WAAW,SAAS,WAAW,WAAW,kBAAkB,iBAAiB,cAAc,WAAW,eAAe,gBAAgB,WAAW,WAAW,oBAAoB,iBAAiB,SAAS,cAAc,OAAO,aAAa,aAAa,0BAA0B,YAAY,UAAU,WAAW,aAAa,aAAa,UAAU,eAAe,gBAAgB,SAAS,gBAAgB,SAAS,QAAQ,UAAU,iBAAiB,kBAAkB,uBAAuB,WAAW,gBAAgB,qBAAqB,cAAc,UAAU,aAAa,UAAU,eAAe,aAAa,UAAU,YAAY,UAAU,YAAY,YAAY,YAAY,WAAW,YAAY,WAAW,UAAU,eAAe,aAAa,YAAY,aAAa,UAAU,oBAAoB,YAAY,SAAS,eAAe,gBAAgB,YAAY,QAAQ,mBAAmB,cAAc,UAAU,WAAW,SAAS,mBAAmB,iBAAiB,gBAAgB,UAAU,gBAAgB,WAAW,WAAW,GAAGC,KAAI,CAAC,aAAa,cAAc,OAAO;AAChsC,SAASC,GAAEpC,GAAG,GAAG;AACf,MAAI,CAACA,EAAG,OAAM,IAAI,MAAM,8BAA8B;AACtD,SAAOA,EAAE,MAAMA,EAAE,OAAO,QAAQ,OAAO,CAAC,GAAGA,EAAE,YAAY,YAAY,EAAE;AACzE;AACA,SAASqC,KAAI;AACX,MAAIrC,GAAG,IAAI,SAAS,cAAc,QAAQ,GAAG,KAAKA,IAAI,EAAE,WAAW,OAAO,OAAO,QAAQA,MAAM,SAASA,IAAI,EAAE,WAAW,oBAAoB;AAC7I,MAAI,KAAK,kBAAkB,EAAG,KAAI;AAChC,QAAIG,KAAK,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,SAAU,GAAEC,KAAK,EAAE,aAAa,EAAE,QAAQ,KAAK,IAAI,YAAYC,IAAI,EAAE,QAAQF,GAAG,UAAUC,GAAG,UAAU,EAAE,aAAa,EAAE,OAAO,KAAK,IAAI,SAAQ,GAAI,yBAAyB,EAAE,aAAa,EAAE,wBAAwB,KAAK,IAAI,WAAY;AACpR,QAAI,CAACA,EAAE,UAAU,CAACD,EAAE,QAAQ;AAC1B,UAAIG,IAAI,EAAE,aAAa,2BAA2B;AAClD,UAAIA,GAAG;AACL,YAAI,KAAK,EAAE,aAAaA,EAAE,qBAAqB,KAAK,IAAI,SAAU,GAAEE,KAAK,EAAE,aAAaF,EAAE,uBAAuB,KAAK,IAAI,SAAU;AACpI,cAAMD,EAAE,iBAAiB,IAAIG,MAAMH,EAAE,mBAAmBG;AAAA,MAChE;AAAA,IACA;AACI,WAAOH;AAAA,EACX,QAAU;AAAA,EACV;AACE,SAAO;AACT;AACA,SAASiC,KAAI;AACX,MAAItC,IAAI,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,WAAWA,EAAE,MAAM;AACxD,SAAOA,EAAE,CAAC,IAAI,OAAOA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAG,EAAE,CAAC;AAC9C;AACA,SAASuC,GAAEvC,GAAG,GAAG;AACf,MAAI,IAAI,CAAE;AACV,SAAO,EAAE,QAAQ,SAASG,GAAG;AAC3B,QAAIC,IAAI,SAASC,GAAG;AAClB,UAAIA,EAAE,WAAW,EAAG,QAAO;AAC3B,UAAIC,IAAI,CAAE;AACV,MAAAD,EAAE,QAAQ,SAASE,GAAG;AACpB,YAAIE,IAAI,OAAOF,CAAC;AAChB,QAAAD,EAAEG,CAAC,KAAKH,EAAEG,CAAC,KAAK,KAAK;AAAA,MAC7B,CAAO;AACD,UAAI,IAAIJ,EAAE,CAAC,GAAGG,IAAI;AAClB,aAAO,OAAO,KAAKF,CAAC,EAAE,QAAQ,SAASC,GAAG;AACxC,QAAAD,EAAEC,CAAC,IAAIC,MAAM,IAAID,GAAGC,IAAIF,EAAEC,CAAC;AAAA,MAC5B,CAAA,GAAG;AAAA,IACV,EAAMP,EAAE,IAAI,SAASK,GAAG;AAClB,aAAOF,KAAKE,IAAIA,EAAEF,CAAC,IAAI;AAAA,IAC7B,CAAK,EAAE,OAAO,SAASE,GAAG;AACpB,aAAOA,MAAM;AAAA,IACnB,CAAK,CAAC;AACF,IAAAD,MAAM,EAAED,CAAC,IAAIC;AAAA,EACd,CAAA,GAAG;AACN;AACA,SAASoC,KAAK;AACZ,MAAIxC,IAAI,CAAE,GAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,QAAQ,OAAO,QAAQ,UAAU,eAAe,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,eAAe,CAAC,QAAQ,UAAU,MAAM,GAAG,SAAS,CAAC,QAAQ,UAAU,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,GAAG,QAAQ,CAAC,QAAQ,MAAM,GAAG,mBAAmB,CAAC,YAAY,MAAM,GAAG,0BAA0B,CAAC,UAAU,eAAe,GAAG,gCAAgC,CAAC,UAAU,eAAe,GAAG,WAAW,CAAC,QAAQ,gBAAgB,SAAS,GAAG,iBAAiB,CAAC,UAAU,MAAM,EAAG;AACxf,SAAO,OAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,GAAG;AACxC,MAAE,CAAC,EAAE,QAAQ,SAASG,GAAG;AACvB,iBAAW,IAAI,OAAO,GAAG,IAAI,EAAE,OAAOA,GAAG,GAAG,CAAC,EAAE,WAAWH,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,OAAOG,CAAC,CAAC;AAAA,IACnG,CAAK;AAAA,EACF,CAAA,GAAGH;AACN;AACA,SAASyC,KAAK;AACZ,MAAI,OAAO,SAAS,aAAa,YAAY,OAAO,OAAO,mBAAmB,WAAY,KAAI;AAC5F,aAASzC,IAAI,OAAO,gBAAgB,iBAAiB,IAAI,IAAI,IAAI,GAAG,IAAK,KAAIA,EAAE,CAAC,EAAG,QAAO;AAAA,EAC9F,QAAU;AACN,WAAO;AAAA,EACX;AACE,SAAO;AACT;AACA6B,GAAC,EAAG,QAAQ,aAAad,GAAE,SAAS,WAAW;AAC7C,MAAIf,IAAI;AACR,SAAO,IAAI,QAAQ,SAAS,GAAG,GAAG;AAChC,QAAI;AACF,OAAC,SAASG,GAAG;AACX,YAAIC;AACJF,QAAAA,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACjC,cAAIG,GAAGC,GAAG;AACV,iBAAOK,GAAE,MAAM,SAASH,GAAG;AACzB,oBAAQA,EAAE,OAAK;AAAA,cACb,KAAK;AACH,uBAAO,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAID,IAAI,IAAI,IAAI,QAAQ,SAASG,GAAG;AACnE,yBAAO,WAAWA,GAAGH,GAAGE,CAAC;AAAA,gBAC3C,CAAiB,EAAG;AAAA,cACN,KAAK;AACH,uBAAOD,EAAE,KAAI,GAAI,CAAC,GAAG,CAAC;AAAA,cACxB,KAAK;AACH,qBAAKH,IAAI,SAAS,cAAc,QAAQ,GAAG,aAAa,eAAe,GAAG,IAAIC,IAAID,EAAE,OAAO,YAAY,YAAY,OAAO,GAAGC,EAAE,YAAY,WAAW,SAAS,WAAW,GAAGA,EAAE,YAAY,cAAc,SAAS,GAAGA,EAAE,YAAY,UAAU,GAAG,GAAGA,EAAE,YAAY,WAAW,GAAG,GAAGD,EAAE,MAAM,eAAe,SAAS,KAAK,YAAYA,CAAC,GAAG,EAAE,IAAIA,EAAE,qBAAqBD,IAAIC,EAAE,mBAAmB,QAAQD,MAAM,SAAS,SAASA,EAAE,WAAY,OAAM,IAAI,MAAM,mCAAmC;AAC9d,uBAAOD,EAAE,EAAE,QAAQ,EAAC,CAAE,GAAG,WAAW,WAAW;AAC7C,2BAAS,KAAK,YAAYE,CAAC;AAAA,gBAC7C,GAAmB,CAAC,GAAG,CAAC,CAAC;AAAA,YACzB;AACY,gBAAIE,GAAGE;AAAA,UACnB,CAAW;AAAA,QACX,CAAS;AAAA,MACF,GAAE,SAASN,GAAG;AACb,YAAIC,IAAID,EAAE;AACV,eAAOD,GAAEF,GAAG,QAAQ,QAAQ,WAAW;AACrC,cAAIK,GAAGC,GAAG,GAAGE;AACb,iBAAOG,GAAE,MAAM,SAASJ,GAAG;AACzB,mBAAOF,IAAID,EAAE,cAAc,QAAQ,GAAGE,IAAID,EAAE,WAAW,IAAI,GAAG,IAAI8B,GAAE,IAAI,SAAS1B,GAAG;AAClF,qBAAO2B,GAAE9B,GAAGG,CAAC;AAAA,YAC3B,CAAa,GAAGD,IAAI,CAAE,GAAE0B,GAAE,QAAQ,SAASzB,GAAG;AAChC,kBAAIC,IAAI0B,GAAE9B,GAAGG,CAAC;AACd,gBAAE,SAASC,CAAC,MAAMF,EAAEC,CAAC,IAAIC;AAAA,YAC1B,CAAA,GAAG,EAAEF,CAAC,GAAG,CAAC,CAAC;AAAA,UACxB,CAAW;AAAA,QACX,CAAS;AAAA,MACT,CAAO;AAAA,IACP,QAAY;AACN,QAAE,EAAE,OAAO,eAAe;AAAA,IAChC;AAAA,EACA,CAAG;AACH,CAAC,GAAGO,GAAE,YAAY,WAAW;AAC3B,SAAO,IAAI,QAAQ,SAASf,GAAG,GAAG;AAChC,QAAI,IAAI,UAAU,iBAAiB,SAAS,UAAU,eAAe,GAAGG,IAAI,OAAO,eAAe,OAAO,YAAY,SAAS,OAAO,YAAY,SAAS;AAC1J,IAAAH,EAAE,EAAE,WAAWqC,GAAG,GAAE,cAAcC,GAAC,GAAI,cAAc,EAAE,SAAQ,KAAM,aAAa,iBAAiBnC,EAAE,mBAAmB,GAAG;AAAA,EAC/H,CAAG;AACH,CAAC,GAAGY,GAAE,WAAW,WAAW;AAC1B,SAAO,IAAI,QAAQ,SAASf,GAAG;AAC7B,IAAAA,EAAE,EAAE,WAAW,UAAU,UAAU,UAAU,KAAK,eAAgB,EAAC,gBAAiB,EAAC,SAAQ,CAAE;AAAA,EACnG,CAAG;AACH,CAAC,GAAGe,GAAE,eAAe,WAAW;AAC9B,SAAOb,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,QAAIF;AACJ,WAAOW,GAAE,MAAM,SAAS,GAAG;AACzB,aAAOsB,MAAKrB,MAAK,OAAO,SAASA,GAAE,yBAAyB,CAAC,iBAAiB,iBAAiB,wBAAwB,wBAAwB,oBAAoB,mBAAmB,aAAa,UAAU,kBAAkB,mBAAmB,eAAe,mBAAmB,aAAa,eAAe,eAAe,gBAAgB,cAAc,QAAQ,OAAO,iBAAiB,mBAAmB,sBAAsB,QAAQ,WAAW,kBAAkB,4BAA4B,qBAAqB,OAAO,GAAGZ,IAAI,MAAM,KAAK,EAAE,SAASY,MAAK,OAAO,SAASA,GAAE,YAAY,EAAG,GAAE,WAAW;AACjlB,eAAO,WAAW;AAChB,iBAAOV,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,gBAAI,GAAGC,GAAGC,GAAGC,GAAGC;AAChB,mBAAOK,GAAE,MAAM,SAAS,GAAG;AACzB,sBAAQ,EAAE,OAAK;AAAA,gBACb,KAAK;AACH,sBAAI,CAAA,GAAIR,IAAI,GAAGC,IAAI6B,IAAG,EAAE,QAAQ;AAAA,gBAClC,KAAK;AACH,sBAAI,EAAE9B,IAAIC,EAAE,QAAS,QAAO,CAAC,GAAG,CAAC;AACjC,kBAAAC,IAAID,EAAED,CAAC,GAAG,EAAE,QAAQ;AAAA,gBACtB,KAAK;AACH,yBAAO,EAAE,KAAK,KAAK,CAAC,GAAG,GAAC,EAAI,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,YAAY,MAAM,EAAE,MAAME,EAAC,CAAE,CAAC;AAAA,gBAC/E,KAAK;AACH,yBAAOC,IAAI,EAAE,KAAM,GAAE,EAAED,CAAC,IAAIC,EAAE,MAAM,SAAQ,GAAI,CAAC,GAAG,CAAC;AAAA,gBACvD,KAAK;AACH,yBAAO,EAAE,KAAI,GAAI,CAAC,GAAG,CAAC;AAAA,gBACxB,KAAK;AACH,yBAAOH,KAAK,CAAC,GAAG,CAAC;AAAA,gBACnB,KAAK;AACH,yBAAO,CAAC,GAAG,CAAC;AAAA,cAC9B;AAAA,YACA,CAAa;AAAA,UACb,CAAW;AAAA,QACX,EAAW;AAAA,MACX,CAAO,GAAG,CAAC,GAAG,QAAQ,IAAIH,CAAC,EAAE,KAAK,SAAS,GAAG;AACtC,eAAOuC,GAAE,GAAGN,EAAC;AAAA,MACrB,CAAO,CAAC;AAAA,IACR,CAAK;AAAA,EACL,CAAG;AACH,CAAC,GAAGlB,GAAE,WAAW,WAAW;AAC1B,MAAIf,IAAI,CAAE;AACV,MAAI,UAAU,QAAS,UAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,QAAQ,KAAK;AACxE,QAAI,IAAI,UAAU,QAAQ,CAAC;AAC3B,IAAAA,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC;AAAA,EACxD;AACE,SAAO,IAAI,QAAQ,SAASG,GAAG;AAC7B,IAAAA,EAAE,EAAE,SAASH,GAAG;AAAA,EACpB,CAAG;AACH,CAAC,GAAGe,GAAE,UAAU,WAAW;AACzB,SAAO,IAAI,QAAQ,SAASf,GAAG;AAC7B,IAAAA,EAAE,EAAE,gBAAgB,UAAU,iBAAiB,GAAG,gBAAgB,UAAU,gBAAgB,YAAY,OAAO,YAAY,cAAcwC,GAAI,EAAA,CAAE;AAAA,EACnJ,CAAG;AACH,CAAC,GAAGzB,GAAE,UAAU,WAAW;AACzB,SAAO,IAAI,QAAQ,SAASf,GAAG;AAC7B,QAAI,IAAI6B,GAAG;AACX,IAAA7B,EAAE,EAAE,UAAU,OAAO,UAAU,UAAU,eAAe,OAAO,UAAU,eAAe,YAAY,UAAU,YAAY,SAAS,UAAU,SAAS,WAAW,UAAU,WAAW,qBAAqB,UAAU,qBAAqB,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,QAAS,GAAE,iBAAiByC,GAAE,GAAI;AAAA,EACpT,CAAG;AACH,CAAC;AACD,IAAIC,GAAGC,KAAKd,KAAI,SAAS,mBAAmB,IAAI,GAAGe,IAAI;AACvD7B,GAAE,SAAS,WAAW;AACpB,SAAOb,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,QAAIF;AACJ,WAAOW,GAAE,MAAM,SAAS,GAAG;AACzB,aAAO,WAAW,SAAS+B,IAAI,SAAS,cAAc,QAAQ,GAAG,QAAQ,KAAKA,EAAE,SAAS,KAAKE,IAAIF,EAAE,WAAW,OAAO;AACtH,UAAI;AACF,YAAI,CAACE,EAAG,OAAM,IAAI,MAAM,qBAAqB;AAC7C,eAAO5C,IAAI,MAAM,KAAK,EAAE,QAAQ2C,GAAE,GAAI,WAAW;AAC/C,iBAAO,WAAW;AAChB,gBAAI;AACF,kBAAI,CAACC,EAAG,OAAM,IAAI,MAAM,qBAAqB;AAC7C,kBAAI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKbzC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKJC,IAAIwC,EAAE,aAAaA,EAAE,aAAa,GAAGvC,IAAIuC,EAAE,aAAaA,EAAE,eAAe;AACpE,kBAAI,CAACxC,KAAK,CAACC,EAAG,OAAM,IAAI,MAAM,0BAA0B;AACxD,kBAAIuC,EAAE,aAAaxC,GAAG,CAAC,GAAGwC,EAAE,aAAavC,GAAGF,CAAC,GAAGyC,EAAE,cAAcxC,CAAC,GAAG,CAACwC,EAAE,mBAAmBxC,GAAGwC,EAAE,cAAc,EAAG,OAAM,IAAI,MAAM,uCAAuCA,EAAE,iBAAiBxC,CAAC,CAAC;AAC5L,kBAAIwC,EAAE,cAAcvC,CAAC,GAAG,CAACuC,EAAE,mBAAmBvC,GAAGuC,EAAE,cAAc,EAAG,OAAM,IAAI,MAAM,yCAAyCA,EAAE,iBAAiBvC,CAAC,CAAC;AAClJ,kBAAIC,IAAIsC,EAAE,cAAe;AACzB,kBAAI,CAACtC,EAAG,OAAM,IAAI,MAAM,iCAAiC;AACzD,kBAAIsC,EAAE,aAAatC,GAAGF,CAAC,GAAGwC,EAAE,aAAatC,GAAGD,CAAC,GAAGuC,EAAE,YAAYtC,CAAC,GAAG,CAACsC,EAAE,oBAAoBtC,GAAGsC,EAAE,WAAW,EAAG,OAAM,IAAI,MAAM,oCAAoCA,EAAE,kBAAkBtC,CAAC,CAAC;AACtLsC,cAAAA,EAAE,WAAWtC,CAAC;AACd,uBAAS,IAAI,KAAKE,IAAI,IAAI,aAAa,IAAI,CAAC,GAAGD,IAAI,IAAI,KAAK,KAAK,GAAGE,IAAI,GAAGA,IAAI,GAAGA,KAAK;AACrF,oBAAIC,IAAID,IAAIF;AACZ,gBAAAC,EAAE,IAAIC,CAAC,IAAI,GAAGD,EAAE,IAAIC,IAAI,CAAC,IAAI,GAAGD,EAAE,IAAIC,IAAI,CAAC,IAAI,KAAK,IAAIC,CAAC,KAAKgC,EAAE,QAAQ,IAAIlC,EAAE,IAAIC,IAAI,CAAC,IAAI,KAAK,IAAIC,CAAC,KAAKgC,EAAE,SAAS;AAAA,cACrI;AACc,kBAAIG,IAAID,EAAE,aAAc;AACxBA,cAAAA,EAAE,WAAWA,EAAE,cAAcC,CAAC,GAAGD,EAAE,WAAWA,EAAE,cAAcpC,GAAGoC,EAAE,WAAW;AAC9E,kBAAIE,IAAIF,EAAE,kBAAkBtC,GAAG,UAAU;AACzCsC,cAAAA,EAAE,wBAAwBE,CAAC,GAAGF,EAAE,oBAAoBE,GAAG,GAAGF,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGA,EAAE,SAAS,GAAG,GAAGF,EAAE,OAAOA,EAAE,MAAM,GAAGE,EAAE,WAAW,GAAG,GAAG,GAAG,CAAC,GAAGA,EAAE,MAAMA,EAAE,gBAAgB,GAAGA,EAAE,WAAWA,EAAE,OAAO,GAAG,IAAI,CAAC;AACxM,kBAAIG,IAAI,IAAI,kBAAkBL,EAAE,QAAQA,EAAE,SAAS,CAAC;AACpD,qBAAOE,EAAE,WAAW,GAAG,GAAGF,EAAE,OAAOA,EAAE,QAAQE,EAAE,MAAMA,EAAE,eAAeG,CAAC,GAAG,IAAI,UAAUA,GAAGL,EAAE,OAAOA,EAAE,MAAM;AAAA,YAC1H,QAAoB;AACN,qBAAO,IAAI,UAAU,GAAG,CAAC;AAAA,YACvC,UAAsB;AACRE,cAAAA,MAAMA,EAAE,WAAWA,EAAE,cAAc,IAAI,GAAGA,EAAE,WAAW,IAAI,GAAGA,EAAE,SAAS,GAAG,GAAGA,EAAE,oBAAoBA,EAAE,mBAAmB,GAAGA,EAAE,WAAW,GAAG,GAAG,GAAG,CAAC;AAAA,YAClK;AAAA,UACA,EAAa;AAAA,QACb,CAAS,GAAG,CAAC,GAAG,EAAE,iBAAiBxB,GAAEO,GAAE3B,GAAG0C,EAAE,OAAOA,EAAE,MAAM,EAAE,KAAK,SAAQ,CAAE,EAAE,SAAQ,GAAI;AAAA,MAC1F,QAAc;AACN,eAAO,CAAC,GAAG,EAAE,OAAO,cAAa,CAAE;AAAA,MAC3C;AACM,aAAO,CAAC,CAAC;AAAA,IACf,CAAK;AAAA,EACL,CAAG;AACH,CAAC;AACD,IAAIM,KAAI,SAAShD,GAAG,GAAG,GAAGG,GAAG;AAC3B,WAASC,KAAK,IAAI,KAAKD,GAAGE,IAAI,GAAGC,IAAI,GAAGA,IAAIH,GAAGG;AAC7C,IAAAD,KAAKL,EAAE,KAAKM,IAAI,OAAOF,CAAC;AAC1B,SAAOC,IAAID;AACb;AACAW,GAAE,QAAQ,WAAW;AACnB,SAAOb,GAAE,QAAQ,QAAQ,QAAQ,WAAW;AAC1C,WAAOS,GAAE,MAAM,SAASX,GAAG;AACzB,aAAO,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAAG,GAAG,MAAMgD,GAAE,KAAK,MAAM,IAAI,GAAG,EAAE,GAAG,MAAMA,GAAE,KAAK,MAAM,IAAI,GAAG,EAAE,GAAG,KAAKA,GAAE,KAAK,KAAK,GAAG,KAAK,IAAI,EAAE,GAAG,MAAM,KAAK,KAAK,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,KAAKA,GAAE,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,MAAMA,GAAE,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,KAAK,KAAK,CAAC,GAAG,KAAKA,GAAE,KAAK,KAAK,GAAG,IAAI,KAAK,IAAI,EAAE,GAAG,MAAMA,GAAE,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,EAAC,CAAE;AAAA,IAC5c,CAAK;AAAA,EACL,CAAG;AACH,CAAC;AACD,MAAMC,KAAK;AACX,IAAIC,KAAI,CAAClD,IAAI,OAAO;AAClB,MAAI,IAAI,IAAI,IAAI,OAAO,gBAAgB,IAAI,WAAWA,KAAK,CAAC,CAAC;AAC7D,SAAOA;AACL,SAAKiD,GAAG,EAAEjD,CAAC,IAAI,EAAE;AACnB,SAAO;AACT;AACA,MAAMmD,GAAE;AAAA,EACN,YAAY,GAAG;AACblD,IAAAA,EAAE,MAAM,QAAQ,GAChB,KAAK,SAAS;AAAA,EAClB;AAAA,EACE,MAAM,sBAAsB,GAAG;AAC7B,WAAO,CAAE;AAAA,EACb;AACA;AACA,MAAMmD,WAAWD,GAAE;AAAA;AAAA;AAAA;AAAA,EAIjB,MAAM,sBAAsB,GAAG;AAC7B,QAAI,CAAC,KAAK,OAAO;AACf,aAAO,QAAQ,MAAM,gCAAgC,GAAG,CAAE;AAC5D,UAAMhD,IAAI,sCAAsC,IAAI,gBAAgB;AAAA,MAClE,SAAS;AAAA,MACT,MAAM,KAAK,OAAO;AAAA,MAClB,IAAI,EAAE;AAAA,MACN,GAAG;AAAA,MACH,KAAK;AAAA,MACL,cAAc,GAAG,KAAK,OAAO,qBAAqB,CAAC;AAAA,MACnD,cAAc,GAAG,KAAK,OAAO,wBAAwB,CAAC;AAAA,IAC5D,CAAK,EAAE,SAAQ,CAAE,IAAIE,IAAI,OAAO,MAAM,MAAMF,GAAG,EAAE,QAAQ,MAAO,CAAA,GAAG,KAAI,GAAIG,IAAID,EAAE,YAAY;AAAA,MACvF,CAACE,OAAO;AAAA,QACN,IAAI2C,GAAG;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,OAAO3C;AAAA,MACR;AAAA,IACF,GAAE8C,IAAIhD,EAAE,SAAS,IAAI,CAACE,OAAO;AAAA,MAC5B,IAAI2C,GAAG;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO3C;AAAA,IACb,EAAM;AACF,WAAOD,EAAE,OAAO+C,CAAC;AAAA,EACrB;AACA;AACA,MAAMC,WAAWH,GAAE;AAAA,EACjB,MAAM,sBAAsB,GAAG;AAC7B,WAAO,CAAE;AAAA,EACb;AACA;AACA,MAAMI,WAAWJ,GAAE;AAAA,EACjB,MAAM,sBAAsB,GAAG;AAC7B,WAAO,CAAE;AAAA,EACb;AACA;AACA,MAAMK,KAAK;AACX,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG,GAAGtD,GAAG;AACnBF,IAAAA,EAAE,MAAM,uBAAuB,GAC/BA,EAAE,MAAM,0BAA0B,EAAE,GACpCA,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,SAAS,GACjBA,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,WAAW,GAQnBA,EAAE,MAAM,oBAAoB,CAACyD,GAAGC,IAAI,CAAE,GAAExD,IAAI,OAAO;AACjD,YAAMC,IAAI;AAAA,QACR,YAAYsD;AAAA,QACZ,YAAY;AAAA,UACV,yBAAyB,KAAK,OAAO;AAAA,UACrC,YAAY,KAAK;AAAA,UACjB,GAAGC;AAAA,QACJ;AAAA,QACD,MAAM;AAAA,UACJ,GAAG,KAAK;AAAA,UACR,GAAGxD;AAAA,QACb;AAAA,MACO;AACD,WAAK,uBAAuB,KAAKC,CAAC,GAAG,aAAa,KAAK,qBAAqB,GAAG,KAAK,wBAAwB,WAAW,YAAY;AACjI,cAAMC,IAAI,KAAK,UAAU,EAAE,OAAO,KAAK,uBAAwB,CAAA,GAAGC,IAAI,GAAG,KAAK,cAAc;AAC5F,YAAI;AACF,gBAAM+C,IAAI,MAAM,MAAM/C,GAAG;AAAA,YACvB,QAAQ;AAAA,YACR,SAAS;AAAA,cACP,gBAAgB;AAAA,cAChB,eAAe,KAAK,OAAO;AAAA,cAC3B,gBAAgB,KAAK;AAAA,YACtB;AAAA,YACD,MAAMD;AAAA,YACN,WAAW;AAAA,UACvB,CAAW;AACD,cAAI,CAACgD,EAAE;AACL,kBAAM,IAAI;AAAA,cACR,2BAA2BA,EAAE,MAAM,IAAIA,EAAE,UAAU;AAAA,YACpD;AACH,eAAK,yBAAyB,CAAE;AAChC;AAAA,QACD,SAAQA,GAAG;AACV,gBAAM,QAAQ,MAAM,iCAAiCA,CAAC,GAAGA;AAAA,QACnE;AAAA,MACO,GAAEG,EAAE;AAAA,IACX,CAAK,GACD,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,KAAK,SAASrD,GAAG,KAAK,YAAY+C,GAAG,GAAE,KAAK,iBAAiB,iBAAiB;AAAA,EACrH;AAAA;AAAA;AAAA;AAAA,EAIE,IAAI,iBAAiB;AACnB,WAAO,GAAG,KAAK,OAAO,WAAW;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAIE,IAAI,qBAAqB;AACvB,WAAO;AAAA,MACL,SAAS,KAAK;AAAA,MACd,QAAQ,UAAU,YAAY;AAAA,MAC9B,IAAI,UAAU,UAAU,SAAS,SAAS,IAAI,YAAY,UAAU,UAAU,SAAS,KAAK,IAAI,QAAQ,UAAU,UAAU,SAAS,OAAO,IAAI,UAAU;AAAA,MAC1J,UAAU,UAAU,YAAY;AAAA,MAChC,UAAU,KAAK,QAAQ;AAAA,MACvB,aAAa,KAAK,QAAQ;AAAA,MAC1B,YAAY,UAAU,aAAa;AAAA,IACpC;AAAA,EACL;AACA;AACA,SAASU,GAAG5D,GAAG;AACb,QAAM,IAAI,CAAE;AACZ,MAAI,IAAI;AACR,SAAOA,EAAE,4BAA4B,OAAO,KAAKA,EAAE,wBAAwB,EAAE,QAAQ,CAACG,MAAM;AAC1F,QAAIE;AACJ,UAAMD,KAAKC,IAAIL,EAAE,6BAA6B,OAAO,SAASK,EAAEF,CAAC;AACjE,IAAAC,MAAM,IAAI,QAAQ,EAAE,KAAK;AAAA,MACvB,OAAO;AAAA,MACP,OAAO;AAAA,QACL,KAAKA,EAAE;AAAA,MACf;AAAA,IACA,CAAK;AAAA,EACL,CAAG,GAAGJ,EAAE,4BAA4B,OAAO,KAAKA,EAAE,wBAAwB,EAAE,QAAQ,CAACG,MAAM;AACvF,QAAIE;AACJ,UAAMD,KAAKC,IAAIL,EAAE,6BAA6B,OAAO,SAASK,EAAEF,CAAC;AACjE,IAAAC,MAAM,IAAI,QAAQ,EAAE,KAAK;AAAA,MACvB,OAAO;AAAA,MACP,OAAO;AAAA,QACL,KAAKA,EAAE;AAAA,MACf;AAAA,IACA,CAAK;AAAA,EACF,CAAA,GAAGJ,EAAE,SAAS,SAASA,EAAE,WAAW,mBAAmBA,EAAE,WAAW,IAAI,EAAE,KAAK;AAAA,IAC9E,OAAO;AAAA;AAAA,IAEP,CAACA,EAAE,IAAI,GAAG,EAAE,KAAKA,EAAE,WAAU;AAAA;AAAA,EAE9B,CAAA,GAAG;AACN;AACA,MAAM6D,KAAK,CAAC7D,MAAMA,EAAE,SAAS,GAAG,IAAIA,EAAE,MAAM,GAAG,EAAE,IAAIA,GAAG8D,KAAK,CAAC9D,MAAM;AAClE,MAAI,IAAI;AACR,MAAI,IAAIA,EAAE,QAAQ,IAAI,EAAE,QAAQ,WAAW,CAACG,OAAO;AAAA,IACjD,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACN,GAAEA,CAAC,KAAKA,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAA,GAAI,SAAS,MAAM;AAChD,UAAM,IAAI;AAAA,MACR;AAAA,IACD;AACH,SAAO;AACT;AACA,MAAM4D,GAAG;AAAA,EACP,YAAY,GAAG,GAAG5D,GAAG;AACnBF,IAAAA,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,QAAQ,GAKhBA,EAAE,MAAM,qBAAqB,OAAOyD,MAAM;AACxC,UAAI,GAAGtD;AACP,YAAMuD,IAAIG,GAAGJ,EAAE,UAAU;AACzB,OAAC,IAAI,KAAK,OAAO,kBAAkB,QAAQ,EAAE,iBAAiB,oBAAoB;AAAA,QAChF,aAAaC;AAAA,MACd,CAAA,GAAG,KAAK,OAAO,UAAU,mBAAmB;AAAA,QAC3C,MAAM;AAAA,QACN,MAAM;AAAA,UACJ,YAAYA;AAAA,QACtB;AAAA,MACA,CAAO;AACD,UAAI;AACF,cAAMtD,IAAI;AAAA,UACR,OAAOuD,GAAGF,CAAC;AAAA,UACX,QAAQA,EAAE,UAAU;AAAA;AAAA,UAEpB,OAAOA,EAAE,SAAS,KAAK,OAAO,wBAAwB;AAAA;AAAA,QAEvD;AACD,QAAAA,EAAE,aAAarD,EAAE,WAAWqD,EAAE,UAAUrD,EAAE,OAAOqD,EAAE,SAAS,UAAUA,EAAE,SAAS,QAAQA,EAAE,OAAO;AAClG,cAAMpD,IAAI;AAAA,UACR,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,eAAe,KAAK,OAAO;AAAA,YAC3B,gBAAgB;AAAA,YAChB,gBAAgB,KAAK;AAAA,UACtB;AAAA,UACD,MAAM,KAAK,UAAUD,CAAC;AAAA,QACvB,GAAEgD,IAAI,MAAM,MAAM,KAAK,eAAe/C,CAAC;AACxC,YAAI,CAAC+C,EAAE;AACL,gBAAM,IAAI;AAAA,YACR,UAAUA,EAAE,UAAU,aAAaA,EAAE,MAAM;AAAA,UAC5C;AACH,cAAM7C,IAAI,MAAM6C,EAAE,KAAM;AACxB,gBAAQjD,IAAI,KAAK,OAAO,kBAAkB,QAAQA,EAAE,iBAAiB,4BAA4B;AAAA,UAC/F,aAAauD;AAAA,UACb,qBAAqBnD,EAAE,KAAK;AAAA,QAC7B,CAAA,GAAGA;AAAA,MACL,SAAQH,GAAG;AACV,cAAM,QAAQ,MAAM,2BAA2BA,CAAC,GAAGA;AAAA,MAC3D;AAAA,IACA,CAAK,GACD,KAAK,SAAS,GAAG,KAAK,SAAS,GAAG,KAAK,SAASF;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAIE,IAAI,gBAAgB;AAClB,WAAO,GAAG,KAAK,OAAO,WAAW,UAAU,KAAK,OAAO,MAAM,KAAK,GAAG,CAAC;AAAA,EAC1E;AACA;AACA,MAAM6D,GAAG;AAAA,EACP,YAAY,GAAG,GAAG;AAsChB,QArCA/D,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,eAAe,GACvBA,EAAE,MAAM,cAAc,GACtBA,EAAE,MAAM,UAAU,GAClBA,EAAE,MAAM,QAAQ,GAChBA,EAAE,MAAM,gBAAgB,GACxBA,EAAE,MAAM,sBAAsB,EAAE,GAIhCA,EAAE,MAAM,YAAY,CAACyD,GAAGC,GAAG,MAAM;AAC/B,YAAMvD,IAAI,YAAY;AACpB,SAAC,YAAY;AACX,cAAI,GAAGI;AACP,gBAAMH,IAAI,QAAQ,IAAI,QAAQ,OAAO,SAAS,KAAK,iBAAiB,OAAO,SAAS,EAAE,kBAAkBqD,CAAC;AACzG,cAAI,CAACrD;AACH,kBAAM,IAAI,MAAM,oCAAoC;AACtD,gBAAMC,KAAKE,IAAIH,EAAE,KAAK,QAAQ,CAAA,MAAO,OAAO,SAASG,EAAE,IAAI,CAACD,MAAMA,EAAE,GAAG,EAAE,OAAO,CAACA,MAAM,CAAC,CAACA,CAAC,EAAE,IAAI,CAACA,OAAO;AAAA,YACtG,MAAM;AAAA,YACN,IAAI2C,GAAG;AAAA,YACP,UAAU3C;AAAA,UACtB,EAAY;AACF,UAAAD,EAAE,WAAW,KAAK,KAAK,UAAU,uBAAuB;AAAA,YACtD,MAAM;AAAA,UAClB,CAAW,GAAGqD,EAAEtD,GAAGC,CAAC;AAAA,QACX,GAAA,IAAM,YAAY;AACjB,cAAI,KAAK,UAAU;AACjB,kBAAMD,IAAI,MAAM,KAAK,SAAS,sBAAsBqD,CAAC;AACrD,cAAErD,CAAC;AAAA,UACf;AAAA,QACA,GAAY;AAAA,MACL;AACD,mBAAa,KAAK,cAAc,GAAG,KAAK,OAAO,sBAAsB,KAAK,iBAAiB;AAAA,QACzFD;AAAA,QACA,KAAK,OAAO;AAAA,MACb,IAAGA,EAAG;AAAA,IACb,CAAK,GACG,CAAC,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC,EAAE;AACnC,YAAM,IAAI;AAAA,QACR;AAAA,MACD;AACH,SAAK,SAAS;AAAA,MACZ,GAAG;AAAA;AAAA,MAEH,aAAayD,GAAG,EAAE,WAAW;AAAA,IAC9B,GAAE,KAAK,SAAS,IAAI,KAAK,YAAY,KAAK,QAAQ,CAAC,GAAG,KAAK,eAAc,GAAI,KAAK,wBAAyB;AAAA,EAChH;AAAA,EACE,iBAAiB;AACf,UAAM,IAAI,SAAS;AAAA,MACjB;AAAA,IACD;AACD,eAAW,MAAM;AACf,QAAE,QAAQ,CAAC,MAAM;AACf,UAAE,OAAO;AAAA,MACjB,CAAO;AAAA,IACF,GAAE,EAAE;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAIE,0BAA0B;AACxB,QAAI,iBAAiB,CAACF,GAAGxD,MAAM;AAC7B,UAAI,IAAI;AACR,iBAAWE,KAAKsD;AACd,QAAAtD,EAAE,SAAS,eAAeA,EAAE,WAAW,QAAQ,CAACC,MAAM;AACpD,UAAAA,EAAE,aAAa,KAAKA,EAAE,UAAU,kBAAkB,6BAA6B,IAAI;AAAA,QAC7F,CAAS;AACH,WAAK,KAAK,eAAgB;AAAA,IAChC,CAAK,EAAE,QAAQ,SAAS,MAAM,EAAE,WAAW,IAAI,SAAS,IAAI;AAAA,EAC5D;AAAA,EACE,YAAY,GAAG,GAAG;AAChB,eAAW,YAAY;AACrB,UAAIH,IAAI,KAAK,OAAO;AACpB,cAAQA,MAAMA,IAAI,MAAMsB,GAAG,IAAG,KAAK,gBAAgB,IAAIgC,GAAG,GAAG,GAAGtD,CAAC,GAAG,KAAK,eAAe,IAAI4D,GAAG,MAAM,GAAG5D,CAAC,GAAG,EAAE,UAAQ;AAAA,QACpH,KAAK;AACH,eAAK,WAAW,IAAIiD,GAAG,CAAC;AACxB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,IAAIG,GAAG,CAAC;AACxB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,IAAID,GAAG,CAAC;AACxB;AAAA,MACV;AAAA,IACK,GAAE,GAAG;AAAA,EACV;AAAA,EACE,UAAU,GAAG,GAAG;AACd,QAAInD;AACJ,KAACA,IAAI,KAAK,mBAAmB,CAAC,MAAM,QAAQA,EAAE,QAAQ,CAACC,MAAM;AAC3D,MAAAA,EAAE,CAAC;AAAA,IACT,CAAK;AAAA,EACL;AAAA,EACE,UAAU,GAAG,GAAG;AACd,WAAO,KAAK,mBAAmB,CAAC,MAAM,KAAK,mBAAmB,CAAC,IAAI,CAAE,IAAG,KAAK,mBAAmB,CAAC,EAAE;AAAA,MACjG;AAAA,IACN,GAAO,MAAM;AACP,WAAK,mBAAmB,CAAC,IAAI,KAAK,mBAAmB,CAAC,EAAE,OAAO,CAACD,MAAMA,MAAM,CAAC;AAAA,IAC9E;AAAA,EACL;AACA;;;;;;;;;;;;;;;;;;;;;GC93BM8D,KAAY,8BACZC;AAAA;AAAA,EAAyC,EAAE,aAAa,IAAM,oBAAoB,IAAO,cAAc,IAAM,YAAY,IAAO,cAAc,IAAM,cAAc,IAAO,YAAY,IAAM,cAAc,IAAO,cAAc,IAAO,cAAc,IAAO,iBAAiB,IAAO,aAAa,IAAO,eAAe,IAAO,eAAe,IAAO,mBAAmB,IAAM,kBAAkB,IAAM,gBAAgB,IAAM,UAAU,IAAO,sBAAsB,IAAM,SAAS,IAAO,OAAO,IAAM,+BAA+B,IAAO,uBAAuB,IAAO,gBAAgB,IAAO,aAAa,IAAM,cAAc,IAAO,oBAAoB,IAAO,wBAAwB,IAAO,4BAA4B,IAAO,0BAA0B,IAAO,0BAA0B,IAAO,sBAAsB,IAAO,mBAAmB,IAAO,mBAAmB,IAAO,mBAAmB,IAAO,eAAe,IAAM,sBAAsB,YAAY,uBAAuB,IAAM,SAAS,IAAO,OAAO,IAAO,WAAW,IAAO,UAAU,IAAO,WAAW,IAAM,oBAAoB,IAAO,QAAQ,IAAM,QAAQ,IAAO,MAAM,IAAO,qBAAqB,IAAM,kBAAkB,IAAM,SAAS,IAAO,MAAM,IAAM,aAAa,IAAM,aAAa,IAAO,YAAY,IAAM,YAAY,IAAM,SAAS,IAAO,QAAQ,IAAO,0BAA0B,IAAO,gBAAgB,IAAO,sBAAsB,IAAO,WAAW,IAAO,MAAM,IAAM,mBAAmB,IAAO,gBAAgB,IAAM,OAAO,IAAM,OAAO,IAAO,KAAK,IAAM,WAAW,IAAM,WAAW,IAAM,eAAe,IAAM,WAAW,IAAM,gBAAgB,IAAM,SAAS,IAAM,cAAc,IAAM,gBAAgB,IAAM,SAAS,IAAO,YAAY,IAAM,WAAW,IAAM,UAAU,IAAM,WAAW,IAAO,eAAe,GAAM;AAAA;AAKpuD,IAAIC,KAAY,OAAO,gBACnBC,KAAW,CAACC,GAAQC,MAAQ;AAC9B,WAASC,KAAQD;AACf,IAAAH,GAAUE,GAAQE,GAAM,EAAE,KAAKD,EAAIC,CAAI,GAAG,YAAY,IAAM;AAChE,GAGIC,KAAS,8BACTC,KAAU,gCAGVC,KAAqB,CAACC,GAAUC,MAAY;AAC9C,MAAIC;AACJ,QAAMC,IAAUF,EAAQ;AAExB,EADgB,OAAO,SAASC,IAAKC,EAAQ,cAAc,OAAOD,IAAK,EAAE,EACjE,IAAI,CAAC,CAACE,GAAY,CAACC,CAAW,CAAC,MAAM;AAC3C,QAAKA,IAAc,MAAiBA,IAAc,IAAiB;AACjE,YAAMC,IAAUN,EAASI,CAAU,GAC7BG,IAAe,OAAO,yBAAyB,OAAO,eAAeP,CAAQ,GAAGI,CAAU;AAChG,aAAO,eAAeJ,GAAUI,GAAY;AAAA,QAC1C,MAAM;AACJ,iBAAOG,EAAa,IAAI,KAAK,IAAI;AAAA,QAClC;AAAA,QACD,IAAIC,GAAU;AACZ,UAAAD,EAAa,IAAI,KAAK,MAAMC,CAAQ;AAAA,QACrC;AAAA,QACD,cAAc;AAAA,QACd,YAAY;AAAA,MACpB,CAAO,GACDR,EAASI,CAAU,IAAIH,EAAQ,iBAAiB,IAAIG,CAAU,IAAIH,EAAQ,iBAAiB,IAAIG,CAAU,IAAIE;AAAA,IACnH;AAAA,EACA,CAAG;AACH,GAGIG,KAA2B,oBAAI,QAAS,GACxCC,KAAgB,CAACC,MAAQF,GAAS,OAAOE,CAAG,GAC5CC,KAAa,CAACD,MAAQF,GAAS,IAAIE,CAAG,GACtCE,KAAe,CAACC,GAAaX,MAAY;AAC3C,QAAMF,IAAU;AAAA,IACd,SAAS;AAAA,IACT,eAAea;AAAA,IACf,WAAWX;AAAA,IACX,kBAAkC,oBAAI,IAAG;AAAA,EAC1C;AAEC,EAAAF,EAAQ,mBAAmB,IAAI,QAAQ,CAACjB,MAAMiB,EAAQ,mBAAmBjB,CAAC,GAC1E8B,EAAY,KAAK,IAAI,CAAE,GACvBA,EAAY,MAAM,IAAI,CAAE;AAE1B,QAAMH,IAAMF,GAAS,IAAIK,GAAab,CAAO;AAE3C,SAAAF,GAAmBe,GAAab,CAAO,GAElCU;AACT,GACII,KAAoB,CAACC,GAAKZ,MAAeA,KAAcY,GACvDC,KAAe,CAAC,GAAGC,UAAW,QAAQ,OAAO,GAAGA,CAAE,GAClDC,KAAM,OAAO,SAAW,MAAc,SAAS,CAAE,GACjDC,KAAMD,GAAI,YAAY,EAAE,MAAM,CAAA,EAAI,GAClCpE,IAAIoE,GAAI,eAAe,MAAM;AACjC,GACIE,KAAM;AAAA,EACR,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,KAAK,CAACC,MAAOA,EAAI;AAAA,EACjB,KAAK,CAACA,MAAO,sBAAsBA,CAAE;AAAA,EACrC,KAAK,CAACJ,GAAIK,GAAWC,GAAUC,MAASP,EAAG,iBAAiBK,GAAWC,GAAUC,CAAI;AAAA,EACrF,KAAK,CAACP,GAAIK,GAAWC,GAAUC,MAASP,EAAG,oBAAoBK,GAAWC,GAAUC,CAAI;AAAA,EACxF,IAAI,CAACF,GAAWE,MAAS,IAAI,YAAYF,GAAWE,CAAI;AAC1D,GACIC,KAAiBnC,GAAM,WACvBoC,KAAiB,CAACvF,MAAM,QAAQ,QAAQA,CAAC,GACzCwF,KAAe,IACfC,KAAgB,CAAE,GAClBC,KAAiB,CAAE,GACnBC,KAAY,CAACC,GAAOC,MAAU,CAACC,MAAO;AACxC,EAAAF,EAAM,KAAKE,CAAE,GACRN,OACHA,KAAe,IACFP,GAAI,UAAU,IACzBc,GAASC,EAAK,IAEdf,GAAI,IAAIe,EAAK;AAGnB,GACIC,KAAU,CAACL,MAAU;AACvB,WAASM,IAAK,GAAGA,IAAKN,EAAM,QAAQM;AAClC,QAAI;AACF,MAAAN,EAAMM,CAAE,EAAE,YAAY,IAAG,CAAE;AAAA,IAC5B,SAAQ3G,GAAG;AACV,MAAAsF,GAAatF,CAAC;AAAA,IACpB;AAEE,EAAAqG,EAAM,SAAS;AACjB,GACII,KAAQ,MAAM;AAChB,EAAAC,GAAQR,EAAa,GAEnBQ,GAAQP,EAAc,IAClBF,KAAeC,GAAc,SAAS,MACxCR,GAAI,IAAIe,EAAK;AAGnB,GACID,KAAW,CAACD,MAAOP,GAAc,EAAG,KAAKO,CAAE,GAC3CK,KAA4B,gBAAAR,GAAUD,EAAoB,GAQ1DU,KAAgB,CAAChH,OACnBA,IAAI,OAAOA,GACJA,MAAM,YAAYA,MAAM,aAI7BiH,KAAiB,CAAE;AACvBhD,GAASgD,IAAgB;AAAA,EACvB,KAAK,MAAMC;AAAA,EACX,KAAK,MAAMC;AAAA,EACX,IAAI,MAAMC;AAAA,EACV,QAAQ,MAAMC;AAAA,EACd,WAAW,MAAMC;AACnB,CAAC;AACD,IAAIF,KAAK,CAACG,OAAW;AAAA,EACnB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAAA;AACF,IACIL,KAAM,CAACK,OAAW;AAAA,EACpB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAAA;AACF;AACA,SAASJ,GAAIK,GAAQC,GAAI;AACvB,MAAID,EAAO,MAAM;AACf,UAAME,IAAMD,EAAGD,EAAO,KAAK;AAC3B,WAAIE,aAAe,UACVA,EAAI,KAAK,CAACC,MAAWP,GAAGO,CAAM,CAAC,IAE/BP,GAAGM,CAAG;AAAA,EAEnB;AACE,MAAIF,EAAO,OAAO;AAChB,UAAMD,IAAQC,EAAO;AACrB,WAAON,GAAIK,CAAK;AAAA,EACpB;AACE,QAAM;AACR;AACA,IAAIF,KAAS,CAACG,MAAW;AACvB,MAAIA,EAAO;AACT,WAAOA,EAAO;AAEd,QAAMA,EAAO;AAEjB,GACIF,KAAY,CAACE,MAAW;AAC1B,MAAIA,EAAO;AACT,WAAOA,EAAO;AAEd,QAAMA,EAAO;AAEjB,GACII,KAA+B,CAACpC,MAAQ;AAC1C,QAAMqC,IAAarC,EAAI,gBAAgBA,EAAI;AAC3C,EAAIA,EAAI,WAAWA,EAAI,QAAQ,SAAS,GAAG,KAAKA,EAAI,MAAM,KAAKA,EAAI,YAAY,aAC7EsC,GAAiBD,GAAYrC,EAAI,OAAO,EAAE,QAAQ,CAACuC,MAAa;AAC9D,QAAIrD;AACJ,IAAIqD,EAAS,aAAa,KAAuBA,EAAS,YAAY,eAC/DrD,IAAKsD,GAAsBD,GAAUA,EAAS,MAAM,GAAG,EAAK,MAAM,QAAgBrD,EAAG,SACxFqD,EAAS,SAAS,KAElBA,EAAS,SAAS;AAAA,EAG5B,CAAK;AAEH,aAAWE,KAAaJ;AACtB,IAAII,EAAU,aAAa,MAAwBA,EAAU,gBAAgBA,EAAU,YAAY,UACjGL,GAA6BK,CAAS;AAG5C;AACA,SAASH,GAAiBD,GAAYK,GAAUC,GAAU;AACxD,MAAIrB,IAAK,GACLsB,IAAe,CAAE,GACjBH;AACJ,SAAOnB,IAAKe,EAAW,QAAQf;AAC7B,IAAAmB,IAAYJ,EAAWf,CAAE,GACrBmB,EAAU,MAAM,KAAKA,EAAU,MAAM,MAAMC,KAAaC,MAAa,UACvEC,EAAa,KAAKH,CAAS,GAG7BG,IAAe,CAAC,GAAGA,GAAc,GAAGN,GAAiBG,EAAU,YAAYC,GAAUC,CAAQ,CAAC;AAEhG,SAAOC;AACT;AACA,IAAIJ,KAAwB,CAACK,GAAMF,GAAUG,IAAc,OAAS;AAClE,QAAMT,IAAa,CAAE;AAErB,QADIS,KAAeD,EAAK,MAAM,KAAK,CAACA,EAAK,MAAM,MAAGR,EAAW,KAAKQ,CAAI,IAC9DA,IAAOA,EAAK,gBAAgBA,EAAK,MAAM,MAAMF;AACnD,IAAAN,EAAW,KAAKQ,CAAI;AAEtB,SAAOR;AACT,GACIU,KAAsB,CAACC,GAAgBL,MACrCK,EAAe,aAAa,IAC1BA,EAAe,aAAa,MAAM,MAAM,QAAQL,MAAa,MAG7DK,EAAe,aAAa,MAAM,MAAML,IAK1CK,EAAe,MAAM,MAAML,IACtB,KAEFA,MAAa,IAElBM,KAAa,CAACC,GAAQC,IAAU,OAEzB,MAAM;AAEZ,GAGD7I,IAAI,CAAC8I,GAAUC,MAAcC,MAAa;AAC5C,MAAIC,IAAQ,MACRC,IAAM,MACNb,IAAW,MACXc,IAAS,IACTC,IAAa;AACjB,QAAMC,IAAgB,CAAE,GAClBC,IAAO,CAAClG,MAAM;AAClB,aAAS4D,IAAK,GAAGA,IAAK5D,EAAE,QAAQ4D;AAC9B,MAAAiC,IAAQ7F,EAAE4D,CAAE,GACR,MAAM,QAAQiC,CAAK,IACrBK,EAAKL,CAAK,IACDA,KAAS,QAAQ,OAAOA,KAAU,eACvCE,IAAS,OAAOL,KAAa,cAAc,CAAC5B,GAAc+B,CAAK,OACjEA,IAAQ,OAAOA,CAAK,IAElBE,KAAUC,IACZC,EAAcA,EAAc,SAAS,CAAC,EAAE,UAAUJ,IAElDI,EAAc,KAAKF,IAASI,GAAS,MAAMN,CAAK,IAAIA,CAAK,GAE3DG,IAAaD;AAAA,EAGlB;AAED,MADAG,EAAKN,CAAQ,GACTD,GAAW;AACb,IAAIA,EAAU,QACZG,IAAMH,EAAU,MAEdA,EAAU,SACZV,IAAWU,EAAU;AAEvB;AACE,YAAMS,IAAYT,EAAU,aAAaA,EAAU;AACnD,MAAIS,MACFT,EAAU,QAAQ,OAAOS,KAAc,WAAWA,IAAY,OAAO,KAAKA,CAAS,EAAE,OAAO,CAAC1H,MAAM0H,EAAU1H,CAAC,CAAC,EAAE,KAAK,GAAG;AAAA,IAEjI;AAAA,EACA;AACE,MAAI,OAAOgH,KAAa;AACtB,WAAOA;AAAA,MACLC,MAAc,OAAO,CAAA,IAAKA;AAAA,MAC1BM;AAAA,MACAI;AAAA,IACD;AAEH,QAAMC,IAAQH,GAAST,GAAU,IAAI;AACrC,SAAAY,EAAM,UAAUX,GACZM,EAAc,SAAS,MACzBK,EAAM,aAAaL,IAGnBK,EAAM,QAAQR,GAGdQ,EAAM,SAASrB,GAEVqB;AACT,GACIH,KAAW,CAACI,GAAKC,MAAS;AAC5B,QAAMF,IAAQ;AAAA,IACZ,SAAS;AAAA,IACT,OAAOC;AAAA,IACP,QAAQC;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACb;AAEC,SAAAF,EAAM,UAAU,MAGhBA,EAAM,QAAQ,MAGdA,EAAM,SAAS,MAEVA;AACT,GACIG,KAAO,CAAE,GACTC,KAAS,CAACvB,MAASA,KAAQA,EAAK,UAAUsB,IAC1CJ,KAAc;AAAA,EAChB,SAAS,CAACT,GAAUpC,MAAOoC,EAAS,IAAIe,EAAe,EAAE,QAAQnD,CAAE;AAAA,EACnE,KAAK,CAACoC,GAAUpC,MAAOoC,EAAS,IAAIe,EAAe,EAAE,IAAInD,CAAE,EAAE,IAAIoD,EAAgB;AACnF,GACID,KAAkB,CAACxB,OAAU;AAAA,EAC/B,QAAQA,EAAK;AAAA,EACb,WAAWA,EAAK;AAAA,EAChB,MAAMA,EAAK;AAAA,EACX,OAAOA,EAAK;AAAA,EACZ,MAAMA,EAAK;AAAA,EACX,OAAOA,EAAK;AACd,IACIyB,KAAmB,CAACzB,MAAS;AAC/B,MAAI,OAAOA,EAAK,QAAS,YAAY;AACnC,UAAMQ,IAAY,EAAE,GAAGR,EAAK,OAAQ;AACpC,WAAIA,EAAK,SACPQ,EAAU,MAAMR,EAAK,OAEnBA,EAAK,UACPQ,EAAU,OAAOR,EAAK,QAEjBvI,EAAEuI,EAAK,MAAMQ,GAAW,GAAGR,EAAK,aAAa,EAAE;AAAA,EAC1D;AACE,QAAMmB,IAAQH,GAAShB,EAAK,MAAMA,EAAK,KAAK;AAC5C,SAAAmB,EAAM,UAAUnB,EAAK,QACrBmB,EAAM,aAAanB,EAAK,WACxBmB,EAAM,QAAQnB,EAAK,MACnBmB,EAAM,SAASnB,EAAK,OACbmB;AACT,GACIO,KAAqB,CAACC,GAAWC,MAC/BD,KAAa,QAAQ,CAAChD,GAAcgD,CAAS,IAC3CC,IAAW,IACND,MAAc,UAAU,KAAQA,MAAc,MAAM,CAAC,CAACA,IAE3DC,IAAW,IACN,WAAWD,CAAS,IAEzBC,IAAW,IACN,OAAOD,CAAS,IAElBA,IAEFA,GAELE,KAAa,CAAC/E,MAAQA,GAGtBgF,KAAc,CAAChF,GAAKf,GAAMgG,MAAU;AACtC,QAAM5E,IAAM0E,GAAW/E,CAAG;AAC1B,SAAO;AAAA,IACL,MAAM,CAACkF,MACEC,GAAU9E,GAAKpB,GAAM;AAAA,MAC1B,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,QAAAiG;AAAA,IACR,CAAO;AAAA,EAEJ;AACH,GACIC,KAAY,CAAC9E,GAAKpB,GAAM6B,MAAS;AACnC,QAAMsE,IAAK1E,GAAI,GAAGzB,GAAM6B,CAAI;AAC5B,SAAAT,EAAI,cAAc+E,CAAE,GACbA;AACT,GACIC,KAAoC,oBAAI,QAAS,GACjDC,KAAc,CAACjF,GAAKZ,GAAY8F,GAAU1F,GAAU2F,GAAOP,MAAU;AACvE,MAAIM,MAAa1F,GAAU;AACzB,QAAI4F,IAASrF,GAAkBC,GAAKZ,CAAU,GAC1CiG,IAAKjG,EAAW,YAAa;AACjC,QAAIA,MAAe,SAAS;AAC1B,YAAMkG,IAAYtF,EAAI,WAChBuF,IAAaC,GAAeN,CAAQ;AAC1C,UAAIO,IAAaD,GAAehG,CAAQ;AACxC,MAAIQ,EAAI,MAAM,KACZyF,EAAW,KAAKzF,EAAI,MAAM,CAAC,GAC3BuF,EAAW,QAAQ,CAAC7H,MAAM;AACxB,QAAIA,EAAE,WAAWsC,EAAI,MAAM,CAAC,KAAGyF,EAAW,KAAK/H,CAAC;AAAA,MAC1D,CAAS,GACD+H,IAAa,CAAC,GAAG,IAAI,IAAIA,CAAU,CAAC,GACpCH,EAAU,IAAI,GAAGG,CAAU,GAC3B,OAAOzF,EAAI,MAAM,MAEjBsF,EAAU,OAAO,GAAGC,EAAW,OAAO,CAAC7H,MAAMA,KAAK,CAAC+H,EAAW,SAAS/H,CAAC,CAAC,CAAC,GAC1E4H,EAAU,IAAI,GAAGG,EAAW,OAAO,CAAC/H,MAAMA,KAAK,CAAC6H,EAAW,SAAS7H,CAAC,CAAC,CAAC;AAAA,IAE/E,WAAe0B,MAAe,SAAS;AAE/B,iBAAWsG,KAAQR;AACjB,SAAI,CAAC1F,KAAYA,EAASkG,CAAI,KAAK,UAC7BA,EAAK,SAAS,GAAG,IACnB1F,EAAI,MAAM,eAAe0F,CAAI,IAE7B1F,EAAI,MAAM0F,CAAI,IAAI;AAK1B,iBAAWA,KAAQlG;AACjB,SAAI,CAAC0F,KAAY1F,EAASkG,CAAI,MAAMR,EAASQ,CAAI,OAC3CA,EAAK,SAAS,GAAG,IACnB1F,EAAI,MAAM,YAAY0F,GAAMlG,EAASkG,CAAI,CAAC,IAE1C1F,EAAI,MAAM0F,CAAI,IAAIlG,EAASkG,CAAI;AAAA,IAI3C,WAAetG,MAAe,MAAc,KAAK,CAACY,EAAI,iBAAiBZ,CAAU,KAAMA,EAAW,CAAC,MAAM,OAAOA,EAAW,CAAC,MAAM;AAQ5H,UAPIA,EAAW,CAAC,MAAM,MACpBA,IAAaA,EAAW,MAAM,CAAC,IACtBW,GAAkBI,IAAKkF,CAAE,IAClCjG,IAAaiG,EAAG,MAAM,CAAC,IAEvBjG,IAAaiG,EAAG,CAAC,IAAIjG,EAAW,MAAM,CAAC,GAErC8F,KAAY1F,GAAU;AACxB,cAAMmG,IAAUvG,EAAW,SAASwG,EAAoB;AACxD,QAAAxG,IAAaA,EAAW,QAAQyG,IAAqB,EAAE,GACnDX,KACF7E,GAAI,IAAIL,GAAKZ,GAAY8F,GAAUS,CAAO,GAExCnG,KACFa,GAAI,IAAIL,GAAKZ,GAAYI,GAAUmG,CAAO;AAAA,MAEpD;AAAA,WACW;AACL,YAAMG,IAAYtE,GAAchC,CAAQ;AACxC,WAAK4F,KAAUU,KAAatG,MAAa,SAAS,CAAC2F;AACjD,YAAI;AACF,cAAKnF,EAAI,QAAQ,SAAS,GAAG;AAWtB,YAAIA,EAAIZ,CAAU,MAAMI,MAC7BQ,EAAIZ,CAAU,IAAII;AAAA,eAZY;AAC9B,kBAAMnF,IAAImF,KAAmB;AAC7B,YAAIJ,MAAe,SACjBgG,IAAS,MACAF,KAAY,QAAQlF,EAAIZ,CAAU,KAAK/E,OAC5C,OAAO2F,EAAI,iBAAiBZ,CAAU,KAAM,aAC9CY,EAAIZ,CAAU,IAAI/E,IAElB2F,EAAI,aAAaZ,GAAY/E,CAAC;AAAA,UAGnC;AAAA,QAGF,QAAW;AAAA,QACpB;AAEM,MAAImF,KAAY,QAAQA,MAAa,MAC/BA,MAAa,MAASQ,EAAI,aAAaZ,CAAU,MAAM,OAEvDY,EAAI,gBAAgBZ,CAAU,KAGxB,CAACgG,KAAUR,IAAQ,KAAkBO,MAAU,CAACW,MAC1DtG,IAAWA,MAAa,KAAO,KAAKA,GAElCQ,EAAI,aAAaZ,GAAYI,CAAQ;AAAA,IAG/C;AAAA,EACA;AACA,GACIuG,KAAsB,MACtBP,KAAiB,CAACzD,OAChB,OAAOA,KAAU,YAAY,aAAaA,MAC5CA,IAAQA,EAAM,UAEXA,IAGEA,EAAM,MAAMgE,EAAmB,IAF7B,CAAE,IAITH,KAAuB,WACvBC,KAAsB,IAAI,OAAOD,KAAuB,GAAG,GAG3DI,KAAgB,CAACC,GAAUC,GAAUC,MAAe;AACtD,QAAMnG,IAAMkG,EAAS,MAAM,aAAa,MAA6BA,EAAS,MAAM,OAAOA,EAAS,MAAM,OAAOA,EAAS,OACpHE,IAAgBH,KAAYA,EAAS,WAAW,CAAE,GAClDI,IAAgBH,EAAS,WAAW,CAAE;AAE1C,aAAW9G,KAAckH,GAAgB,OAAO,KAAKF,CAAa,CAAC;AACjE,IAAMhH,KAAciH,KAClBpB,GAAYjF,GAAKZ,GAAYgH,EAAchH,CAAU,GAAG,QAAQ+G,GAAYD,EAAS,OAAO;AAIlG,aAAW9G,KAAckH,GAAgB,OAAO,KAAKD,CAAa,CAAC;AACjE,IAAApB,GAAYjF,GAAKZ,GAAYgH,EAAchH,CAAU,GAAGiH,EAAcjH,CAAU,GAAG+G,GAAYD,EAAS,OAAO;AAEnH;AACA,SAASI,GAAgBC,GAAW;AAClC,SAAOA,EAAU,SAAS,KAAK;AAAA;AAAA,IAE7B,CAAC,GAAGA,EAAU,OAAO,CAACC,MAASA,MAAS,KAAK,GAAG,KAAK;AAAA;AAAA;AAAA,IAGrDD;AAAA;AAEJ;AACA,IAAIE,IACAC,IACAC,KAAqB,IACrBC,KAA8B,IAC9BC,KAAoB,IACpBC,KAAY,IACZC,KAAY,CAACC,GAAgBC,GAAgBC,MAAe;AAC9D,MAAIhI;AACJ,QAAMiI,IAAYF,EAAe,WAAWC,CAAU;AACtD,MAAI5F,IAAK,GACLtB,GACAyC,GACA2E;AAgBJ,MAfKT,OACHE,KAAoB,IAChBM,EAAU,UAAU,WACtBA,EAAU,WAAWA,EAAU;AAAA;AAAA;AAAA,IAG7B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,OAIFA,EAAU,WAAW;AACvB,IAAAnH,IAAMmH,EAAU,QAAQ/G,GAAI,eAAe+G,EAAU,MAAM;AAAA,WAClDA,EAAU,UAAU;AAC7B,IAAAnH,IAAMmH,EAAU,QAAQ/G,GAAI,eAAe,EAAE;AAAA,OACxC;AAcL,QAbK0G,OACHA,KAAYK,EAAU,UAAU,QAElCnH,IAAMmH,EAAU,QAAQ/G,GAAI;AAAA,MAC1B0G,KAAYjI,KAASC;AAAA,MACrB,CAAC6H,MAAsBpI,GAAM,kBAAkB4I,EAAU,UAAU,IAAyB,YAAYA,EAAU;AAAA,IACnH,GACGL,MAAaK,EAAU,UAAU,oBACnCL,KAAY,KAGZd,GAAc,MAAMmB,GAAWL,EAAS,GAEtCK,EAAU;AACZ,WAAK7F,IAAK,GAAGA,IAAK6F,EAAU,WAAW,QAAQ,EAAE7F;AAC/C,QAAAmB,IAAYsE,GAAUC,GAAgBG,GAAW7F,CAAE,GAC/CmB,KACFzC,EAAI,YAAYyC,CAAS;AAK7B,IAAI0E,EAAU,UAAU,QACtBL,KAAY,KACH9G,EAAI,YAAY,oBACzB8G,KAAY;AAAA,EAGpB;AACE,SAAA9G,EAAI,MAAM,IAAI0G,IAERS,EAAU,UAAW,MACvBnH,EAAI,MAAM,IAAI,IACdA,EAAI,MAAM,IAAIyG,IACdzG,EAAI,MAAM,IAAImH,EAAU,UAAU,IAClCnH,EAAI,MAAM,KAAKd,IAAKiI,EAAU,YAAY,OAAO,SAASjI,EAAG,KAC7DkI,IAAWJ,KAAkBA,EAAe,cAAcA,EAAe,WAAWE,CAAU,GAC1FE,KAAYA,EAAS,UAAUD,EAAU,SAASH,EAAe,SAEjEK,GAA0BL,EAAe,OAAO,EAAK,IAKtDhH;AACT,GACIqH,KAA4B,CAACC,GAAWC,MAAc;AACxD,EAAAlH,GAAI,WAAW;AACf,QAAMmH,IAAoB,MAAM,KAAKF,EAAU,gBAAgBA,EAAU,UAAU;AACnF,EAAIA,EAAU,MAAM,KAAK/I,GAAM;AAQ/B,WAAS+C,IAAKkG,EAAkB,SAAS,GAAGlG,KAAM,GAAGA,KAAM;AACzD,UAAMmB,IAAY+E,EAAkBlG,CAAE;AACtC,IAAImB,EAAU,MAAM,MAAMiE,MAAejE,EAAU,MAAM,MACvDgF,GAAaC,GAAcjF,CAAS,EAAE,YAAYA,GAAWiF,GAAcjF,CAAS,CAAC,GACrFA,EAAU,MAAM,EAAE,OAAQ,GAC1BA,EAAU,MAAM,IAAI,QACpBA,EAAU,MAAM,IAAI,QACpBoE,KAAoB,KAElBU,KACFF,GAA0B5E,GAAW8E,CAAS;AAAA,EAEpD;AACE,EAAAlH,GAAI,WAAW;AACjB,GACIsH,KAAY,CAACL,GAAWM,GAAQC,GAAaC,GAAQC,GAAUC,MAAW;AAC5E,MAAIC,IAAeX,EAAU,MAAM,KAAKA,EAAU,MAAM,EAAE,cAAcA,GACpE7E;AACJ,SAAOsF,KAAYC,GAAQ,EAAED;AAC3B,IAAID,EAAOC,CAAQ,MACjBtF,IAAYsE,GAAU,MAAMc,GAAaE,CAAQ,GAC7CtF,MACFqF,EAAOC,CAAQ,EAAE,QAAQtF,GACzBgF,GAAaQ,GAAcxF,GAAWiF,GAAcE,CAAM,CAAG;AAIrE,GACIM,KAAe,CAACJ,GAAQC,GAAUC,MAAW;AAC/C,WAASG,IAAQJ,GAAUI,KAASH,GAAQ,EAAEG,GAAO;AACnD,UAAMnE,IAAQ8D,EAAOK,CAAK;AAC1B,QAAInE,GAAO;AACT,YAAMhE,IAAMgE,EAAM;AAClB,MAAIhE,MAEA4G,KAA8B,IAC1B5G,EAAI,MAAM,IACZA,EAAI,MAAM,EAAE,OAAQ,IAEpBqH,GAA0BrH,GAAK,EAAI,GAGvCA,EAAI,OAAQ;AAAA,IAEpB;AAAA,EACA;AACA,GACIoI,KAAiB,CAACd,GAAWe,GAAOlB,GAAWmB,GAAOC,IAAkB,OAAU;AACpF,MAAIC,IAAc,GACdC,IAAc,GACdC,IAAW,GACXpH,IAAK,GACLqH,IAAYN,EAAM,SAAS,GAC3BO,IAAgBP,EAAM,CAAC,GACvBQ,IAAcR,EAAMM,CAAS,GAC7BG,IAAYR,EAAM,SAAS,GAC3BS,IAAgBT,EAAM,CAAC,GACvBU,IAAcV,EAAMQ,CAAS,GAC7BjG,GACAoG;AACJ,SAAOT,KAAeG,KAAaF,KAAeK;AAChD,QAAIF,KAAiB;AACnB,MAAAA,IAAgBP,EAAM,EAAEG,CAAW;AAAA,aAC1BK,KAAe;AACxB,MAAAA,IAAcR,EAAM,EAAEM,CAAS;AAAA,aACtBI,KAAiB;AAC1B,MAAAA,IAAgBT,EAAM,EAAEG,CAAW;AAAA,aAC1BO,KAAe;AACxB,MAAAA,IAAcV,EAAM,EAAEQ,CAAS;AAAA,aACtBI,GAAYN,GAAeG,GAAeR,CAAe;AAClE,MAAAY,GAAMP,GAAeG,GAAeR,CAAe,GACnDK,IAAgBP,EAAM,EAAEG,CAAW,GACnCO,IAAgBT,EAAM,EAAEG,CAAW;AAAA,aAC1BS,GAAYL,GAAaG,GAAaT,CAAe;AAC9D,MAAAY,GAAMN,GAAaG,GAAaT,CAAe,GAC/CM,IAAcR,EAAM,EAAEM,CAAS,GAC/BK,IAAcV,EAAM,EAAEQ,CAAS;AAAA,aACtBI,GAAYN,GAAeI,GAAaT,CAAe;AAChE,OAAKK,EAAc,UAAU,UAAUI,EAAY,UAAU,WAC3D3B,GAA0BuB,EAAc,MAAM,YAAY,EAAK,GAEjEO,GAAMP,GAAeI,GAAaT,CAAe,GACjDd,GAAaH,GAAWsB,EAAc,OAAOC,EAAY,MAAM,WAAW,GAC1ED,IAAgBP,EAAM,EAAEG,CAAW,GACnCQ,IAAcV,EAAM,EAAEQ,CAAS;AAAA,aACtBI,GAAYL,GAAaE,GAAeR,CAAe;AAChE,OAAKK,EAAc,UAAU,UAAUI,EAAY,UAAU,WAC3D3B,GAA0BwB,EAAY,MAAM,YAAY,EAAK,GAE/DM,GAAMN,GAAaE,GAAeR,CAAe,GACjDd,GAAaH,GAAWuB,EAAY,OAAOD,EAAc,KAAK,GAC9DC,IAAcR,EAAM,EAAEM,CAAS,GAC/BI,IAAgBT,EAAM,EAAEG,CAAW;AAAA,SAC9B;AAGH,WAFFC,IAAW,IAEJpH,IAAKkH,GAAalH,KAAMqH,GAAW,EAAErH;AACxC,YAAI+G,EAAM/G,CAAE,KAAK+G,EAAM/G,CAAE,EAAE,UAAU,QAAQ+G,EAAM/G,CAAE,EAAE,UAAUyH,EAAc,OAAO;AACpF,UAAAL,IAAWpH;AACX;AAAA,QACZ;AAGM,MAAIoH,KAAY,KACdO,KAAYZ,EAAMK,CAAQ,GACtBO,GAAU,UAAUF,EAAc,QACpClG,IAAOkE,GAAUsB,KAASA,EAAMI,CAAW,GAAGtB,GAAWuB,CAAQ,KAEjES,GAAMF,IAAWF,GAAeR,CAAe,GAC/CF,EAAMK,CAAQ,IAAI,QAClB7F,IAAOoG,GAAU,QAEnBF,IAAgBT,EAAM,EAAEG,CAAW,MAEnC5F,IAAOkE,GAAUsB,KAASA,EAAMI,CAAW,GAAGtB,GAAWsB,CAAW,GACpEM,IAAgBT,EAAM,EAAEG,CAAW,IAEjC5F,KAEA4E;AAAA,QACEC,GAAckB,EAAc,KAAK,EAAE;AAAA,QACnC/F;AAAA,QACA6E,GAAckB,EAAc,KAAK;AAAA,MAClC;AAAA,IAGX;AAEE,EAAIJ,IAAcG,IAChBhB;AAAA,IACEL;AAAA,IACAgB,EAAMQ,IAAY,CAAC,KAAK,OAAO,OAAOR,EAAMQ,IAAY,CAAC,EAAE;AAAA,IAC3D3B;AAAA,IACAmB;AAAA,IACAG;AAAA,IACAK;AAAA,EACD,IACQL,IAAcK,KACvBZ,GAAaG,GAAOG,GAAaG,CAAS;AAE9C,GACIO,KAAc,CAACE,GAAWC,GAAYd,IAAkB,OACtDa,EAAU,UAAUC,EAAW,QAC7BD,EAAU,UAAU,SACfA,EAAU,WAAWC,EAAW,SAEpCd,KAGDA,KAAmB,CAACa,EAAU,SAASC,EAAW,UACpDD,EAAU,QAAQC,EAAW,QAExB,MALED,EAAU,UAAUC,EAAW,QAOnC,IAEL3B,KAAgB,CAAC7E,MAASA,KAAQA,EAAK,MAAM,KAAKA,GAClDsG,KAAQ,CAAC/B,GAAUD,GAAWoB,IAAkB,OAAU;AAC5D,QAAMvI,IAAMmH,EAAU,QAAQC,EAAS,OACjCkC,IAAclC,EAAS,YACvBmC,IAAcpC,EAAU,YACxBlD,IAAMkD,EAAU,OAChBjD,IAAOiD,EAAU;AACvB,MAAIqC;AACJ,EAAItF,MAAS,QAET4C,KAAY7C,MAAQ,QAAQ,KAAOA,MAAQ,kBAAkB,KAAQ6C,IAGjE7C,MAAQ,UAAU,CAAC0C,MACrBX,GAAcoB,GAAUD,GAAWL,EAAS,GAG5CwC,MAAgB,QAAQC,MAAgB,OAC1CnB,GAAepI,GAAKsJ,GAAanC,GAAWoC,GAAahB,CAAe,IAC/DgB,MAAgB,QACrBnC,EAAS,WAAW,SACtBpH,EAAI,cAAc,KAEpB2H,GAAU3H,GAAK,MAAMmH,GAAWoC,GAAa,GAAGA,EAAY,SAAS,CAAC;AAAA;AAAA,IAGtE,CAAChB,KAAmBhK,GAAM,aAAa+K,MAAgB,QAEvDpB,GAAaoB,GAAa,GAAGA,EAAY,SAAS,CAAC;AAAA,KAEjDxC,MAAa7C,MAAQ,UACvB6C,KAAY,QAEJ0C,IAAgBxJ,EAAI,MAAM,KACpCwJ,EAAc,WAAW,cAActF,IAC9BkD,EAAS,WAAWlD,MAC7BlE,EAAI,OAAOkE;AAEf,GACIuF,KAAgB,CAAE,GAClBC,KAA+B,CAAC1J,MAAQ;AAC1C,MAAI6C,GACA8G,GACAtO;AACJ,QAAMiI,IAAWtD,EAAI,gBAAgBA,EAAI;AACzC,aAAWyC,KAAaa,GAAU;AAChC,QAAIb,EAAU,MAAM,MAAMI,IAAOJ,EAAU,MAAM,MAAMI,EAAK,YAAY;AACtE,MAAA8G,IAAmB9G,EAAK,WAAW,gBAAgBA,EAAK,WAAW;AACnE,YAAMF,IAAWF,EAAU,MAAM;AACjC,WAAKpH,IAAIsO,EAAiB,SAAS,GAAGtO,KAAK,GAAGA;AAE5C,YADAwH,IAAO8G,EAAiBtO,CAAC,GACrB,CAACwH,EAAK,MAAM,KAAK,CAACA,EAAK,MAAM,KAAKA,EAAK,MAAM,MAAMJ,EAAU,MAAM;AACrE,cAAIM,GAAoBF,GAAMF,CAAQ,GAAG;AACvC,gBAAIiH,IAAmBH,GAAc,KAAK,CAACzL,MAAMA,EAAE,qBAAqB6E,CAAI;AAC5E,YAAA+D,KAA8B,IAC9B/D,EAAK,MAAM,IAAIA,EAAK,MAAM,KAAKF,GAC3BiH,KACFA,EAAiB,iBAAiB,MAAM,IAAInH,EAAU,MAAM,GAC5DmH,EAAiB,gBAAgBnH,MAEjCI,EAAK,MAAM,IAAIJ,EAAU,MAAM,GAC/BgH,GAAc,KAAK;AAAA,cACjB,eAAehH;AAAA,cACf,kBAAkBI;AAAA,YAClC,CAAe,IAECA,EAAK,MAAM,KACb4G,GAAc,IAAI,CAACI,MAAiB;AAClC,cAAI9G,GAAoB8G,EAAa,kBAAkBhH,EAAK,MAAM,CAAC,MACjE+G,IAAmBH,GAAc,KAAK,CAACzL,MAAMA,EAAE,qBAAqB6E,CAAI,GACpE+G,KAAoB,CAACC,EAAa,kBACpCA,EAAa,gBAAgBD,EAAiB;AAAA,YAGlE,CAAe;AAAA,UAEf,MAAiB,CAAKH,GAAc,KAAK,CAACzL,MAAMA,EAAE,qBAAqB6E,CAAI,KAC/D4G,GAAc,KAAK;AAAA,YACjB,kBAAkB5G;AAAA,UAChC,CAAa;AAAA,IAIb;AACI,IAAIJ,EAAU,aAAa,KACzBiH,GAA6BjH,CAAS;AAAA,EAE5C;AACA,GACIgF,KAAe,CAACqC,GAAQC,GAASC,MAE1BF,KAAU,OAAO,SAASA,EAAO,aAAaC,GAASC,CAAS,GAGvEC,KAAa,CAAChL,GAASiL,GAAiBC,IAAgB,OAAU;AACpE,MAAIjL,GAAIkL,GAAIC,GAAIC;AAChB,QAAMC,IAAUtL,EAAQ,eAClBmI,IAAWnI,EAAQ,WAAW4E,GAAS,MAAM,IAAI,GACjD2G,IAAYpG,GAAO8F,CAAe,IAAIA,IAAkB5P,EAAE,MAAM,MAAM4P,CAAe;AAE3F,MADAxD,KAAc6D,EAAQ,SAClBJ,KAAiBK,EAAU;AAC7B,eAAWhH,KAAO,OAAO,KAAKgH,EAAU,OAAO;AAC7C,MAAID,EAAQ,aAAa/G,CAAG,KAAK,CAAC,CAAC,OAAO,OAAO,SAAS,OAAO,EAAE,SAASA,CAAG,MAC7EgH,EAAU,QAAQhH,CAAG,IAAI+G,EAAQ/G,CAAG;AAI1C,EAAAgH,EAAU,QAAQ,MAClBA,EAAU,WAAW,GACrBvL,EAAQ,UAAUuL,GAClBA,EAAU,QAAQpD,EAAS,QAAQmD,GACnC5D,KAAqBjG,IAEnB+F,KAAa8D,EAAQ,MAAM,GAC3B3D,KAA8B,IAEhCuC,GAAM/B,GAAUoD,GAAWL,CAAa;AACxC;AAEE,QADA9J,GAAI,WAAW,GACXwG,IAAmB;AACrB,MAAA6C,GAA6Bc,EAAU,KAAK;AAC5C,iBAAWC,KAAgBhB,IAAe;AACxC,cAAMzG,IAAiByH,EAAa;AACpC,YAAI,CAACzH,EAAe,MAAM,GAAG;AAC3B,gBAAM0H,IAAkBtK,GAAI,eAAe,EAAE;AAC7C,UAAAsK,EAAgB,MAAM,IAAI1H,GAC1ByE,GAAazE,EAAe,YAAYA,EAAe,MAAM,IAAI0H,GAAiB1H,CAAc;AAAA,QAC1G;AAAA,MACA;AACM,iBAAWyH,KAAgBhB,IAAe;AACxC,cAAMzG,IAAiByH,EAAa,kBAC9BE,IAAcF,EAAa;AACjC,YAAIE,GAAa;AACf,gBAAMC,IAAgBD,EAAY;AAClC,cAAIE,IAAmBF,EAAY;AACnC;AACE,gBAAID,MAAmBxL,IAAK8D,EAAe,MAAM,MAAM,OAAO,SAAS9D,EAAG;AAC1E,mBAAOwL,MAAiB;AACtB,kBAAII,KAAWV,IAAKM,GAAgB,MAAM,MAAM,OAAON,IAAK;AAC5D,kBAAIU,KAAWA,EAAQ,MAAM,MAAM9H,EAAe,MAAM,KAAK4H,OAAmBE,EAAQ,gBAAgBA,EAAQ,aAAa;AAE3H,qBADAA,IAAUA,EAAQ,aACXA,MAAY9H,KAAmB8H,KAAW,QAAgBA,EAAQ,MAAM;AAC7E,kBAAAA,IAAUA,KAAW,OAAO,SAASA,EAAQ;AAE/C,oBAAI,CAACA,KAAW,CAACA,EAAQ,MAAM,GAAG;AAChC,kBAAAD,IAAmBC;AACnB;AAAA,gBAClB;AAAA,cACA;AACc,cAAAJ,KAAkBA,GAAgB;AAAA,YAChD;AAAA,UACA;AACU,gBAAMZ,IAAS9G,EAAe,gBAAgBA,EAAe,YACvD+H,KAAc/H,EAAe,iBAAiBA,EAAe;AACnE,WAAI,CAAC6H,KAAoBD,MAAkBd,KAAUiB,OAAgBF,MAC/D7H,MAAmB6H,MACjB,CAAC7H,EAAe,MAAM,KAAKA,EAAe,MAAM,MAClDA,EAAe,MAAM,IAAIA,EAAe,MAAM,EAAE,WAAW,WAE7DyE,GAAamD,GAAe5H,GAAgB6H,CAAgB,GACxD7H,EAAe,aAAa,KAAuBA,EAAe,YAAY,cAChFA,EAAe,UAAUqH,IAAKrH,EAAe,MAAM,MAAM,OAAOqH,IAAK,MAI3ErH,KAAkB,OAAO2H,EAAY,MAAM,KAAM,cAAcA,EAAY,MAAM,EAAE3H,CAAc;AAAA,QAC3G;AACU,UAAIA,EAAe,aAAa,MAC1BmH,MACFnH,EAAe,MAAM,KAAKsH,IAAKtH,EAAe,WAAW,OAAOsH,IAAK,KAEvEtH,EAAe,SAAS;AAAA,MAGpC;AAAA,IACA;AACI,IAAI4D,MACFxE,GAA6BoI,EAAU,KAAK,GAE9CnK,GAAI,WAAW,IACfoJ,GAAc,SAAS;AAAA,EAC3B;AACE,EAAAhD,KAAa;AACf,GAGIuE,KAAmB,CAAC/L,GAASgM,MAAsB;AACrD,MAAIA,KAAqB,CAAChM,EAAQ,qBAAqBgM,EAAkB,KAAK,GAAG;AAC/E,UAAM9C,IAAQ8C,EAAkB,KAAK,EAAE;AAAA,MACrC,IAAI;AAAA,QACF,CAACjN,MAAMiB,EAAQ,oBAAoB,MAAM;AACvC,UAAAgM,EAAkB,KAAK,EAAE,OAAO9C,IAAQ,GAAG,CAAC,GAC5CnK,EAAG;AAAA,QACb;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA,GACIkN,KAAiB,CAACjM,GAASkL,MAAkB;AAI/C,MAFElL,EAAQ,WAAW,IAEjBA,EAAQ,UAAU,GAA8B;AAClD,IAAAA,EAAQ,WAAW;AACnB;AAAA,EACJ;AACE,SAAA+L,GAAiB/L,GAASA,EAAQ,mBAAmB,GAE9CsC,GADU,MAAM4J,GAAclM,GAASkL,CAAa,CAClC;AAC3B,GACIgB,KAAgB,CAAClM,GAASkL,MAAkB;AAC9C,QAAMnK,IAAMf,EAAQ,eACdmM,IAAcnI,GAAW,kBAAkBhE,EAAQ,UAAU,SAAS,GACtED,IAAWgB;AACjB,MAAI,CAAChB;AACH,UAAM,IAAI;AAAA,MACR,2BAA2BgB,EAAI,QAAQ,YAAa,CAAA;AAAA,IACrD;AAEH,MAAIqL;AACJ,SAAAD,EAAa,GACNE,GAAQD,GAAc,MAAME,GAAgBtM,GAASD,GAAUmL,CAAa,CAAC;AACtF,GACImB,KAAU,CAACD,GAAcpJ,MAAOuJ,GAAWH,CAAY,IAAIA,EAAa,KAAKpJ,CAAE,EAAE,MAAM,CAACwJ,MAAS;AACnG,UAAQ,MAAMA,CAAI,GAClBxJ,EAAI;AACN,CAAC,IAAIA,EAAI,GACLuJ,KAAa,CAACH,MAAiBA,aAAwB,WAAWA,KAAgBA,EAAa,QAAQ,OAAOA,EAAa,QAAS,YACpIE,KAAkB,OAAOtM,GAASD,GAAUmL,MAAkB;AAChE,MAAIjL;AACJ,QAAMc,IAAMf,EAAQ,eACdyM,IAAYzI,GAAW,UAAUhE,EAAQ,UAAU,SAAS,GAC5D0M,IAAK3L,EAAI,MAAM,GACf4L,IAAY3I,GAAW,UAAUhE,EAAQ,UAAU,SAAS;AAEhE,EAAA4M,GAAW5M,GAASD,GAAUgB,GAAKmK,CAAa,GAE9CwB,MACFA,EAAG,IAAI,CAACzK,MAAOA,EAAE,CAAE,GACnBlB,EAAI,MAAM,IAAI,SAEhB4L,EAAW,GACXF,EAAW;AACX;AACE,UAAMI,KAAoB5M,IAAKc,EAAI,KAAK,MAAM,OAAOd,IAAK,CAAE,GACtD6M,IAAa,MAAMC,GAAoB/M,CAAO;AACpD,IAAI6M,EAAiB,WAAW,IAC9BC,EAAY,KAEZ,QAAQ,IAAID,CAAgB,EAAE,KAAKC,CAAU,GAC7C9M,EAAQ,WAAW,GACnB6M,EAAiB,SAAS;AAAA,EAEhC;AACA,GACID,KAAa,CAAC5M,GAASD,GAAUgB,GAAKmK,MAAkB;AAC1D,MAAI;AACF,IAAAnL,IAAWA,EAAS,OAAQ,GAE1BC,EAAQ,WAAW,KAGnBA,EAAQ,WAAW,GAKfgL,GAAWhL,GAASD,GAAUmL,CAAa;AAAA,EAIlD,SAAQxP,GAAG;AACV,IAAAsF,GAAatF,GAAGsE,EAAQ,aAAa;AAAA,EACzC;AACE,SAAO;AACT,GACI+M,KAAsB,CAAC/M,MAAY;AACrC,QAAMkE,IAAUlE,EAAQ,UAAU,WAC5Be,IAAMf,EAAQ,eACdgN,IAAgBhJ,GAAW,cAAcE,CAAO,GAChDnE,IAAWgB,GACXiL,IAAoBhM,EAAQ;AAClC,EAAMA,EAAQ,UAAU,KAgBtBgN,EAAe,KAffhN,EAAQ,WAAW,IAEjBiN,GAAgBlM,CAAG,GAGnBmM,GAASnN,GAAU,oBAAoB,QAAQgB,CAAG,GAEpDiM,EAAe,GAEbhN,EAAQ,iBAAiBe,CAAG,GACvBiL,KACHmB,GAAY,IAOZnN,EAAQ,sBACVA,EAAQ,kBAAmB,GAC3BA,EAAQ,oBAAoB,SAE1BA,EAAQ,UAAU,OACpBkC,GAAS,MAAM+J,GAAejM,GAAS,EAAK,CAAC,GAE/CA,EAAQ,WAAW;AAEvB,GACImN,KAAa,CAACC,MAAQ;AAEtB,EAAAH,GAAgB9L,GAAI,eAAe,GAErCe,GAAS,MAAM2D,GAAU3E,IAAK,WAAW,EAAE,QAAQ,EAAE,WAAW7B,GAAW,EAAA,CAAE,CAAC;AAChF,GACI6N,KAAW,CAACnN,GAAUsN,GAAQC,GAAKvM,MAAQ;AAC7C,MAAIhB,KAAYA,EAASsN,CAAM;AAC7B,QAAI;AACF,aAAOtN,EAASsN,CAAM,EAAEC,CAAG;AAAA,IAC5B,SAAQ5R,GAAG;AACV,MAAAsF,GAAatF,GAAGqF,CAAG;AAAA,IACzB;AAGA,GACIkM,KAAkB,CAAClM,MAAQ;AAC7B,MAAId;AACJ,SAAOc,EAAI,UAAU,KAAKd,IAAKX,GAAM,yBAAyB,OAAOW,IAAK,UAAU;AACtF,GAGIsN,KAAW,CAAC7M,GAAK8M,MAAa7M,GAAWD,CAAG,EAAE,iBAAiB,IAAI8M,CAAQ,GAC3EC,KAAW,CAAC/M,GAAK8M,GAAUtK,GAAQhD,MAAY;AACjD,QAAMF,IAAUW,GAAWD,CAAG,GACxBK,IAAML,GACNgN,IAAS1N,EAAQ,iBAAiB,IAAIwN,CAAQ,GAC9C7H,IAAQ3F,EAAQ,SAChBD,IAAWgB;AACjB,EAAAmC,IAASoC,GAAmBpC,GAAQhD,EAAQ,UAAUsN,CAAQ,EAAE,CAAC,CAAC;AAClE,QAAMG,IAAa,OAAO,MAAMD,CAAM,KAAK,OAAO,MAAMxK,CAAM;AAE9D,MADuBA,MAAWwK,KAAU,CAACC,GACzB;AAClB,IAAA3N,EAAQ,iBAAiB,IAAIwN,GAAUtK,CAAM;AAC7C;AACE,UAAIhD,EAAQ,cAAcyF,IAAQ,KAAwB;AACxD,cAAMiI,IAAe1N,EAAQ,WAAWsN,CAAQ;AAChD,QAAII,KACFA,EAAa,IAAI,CAACC,MAAoB;AACpC,cAAI;AACF,YAAA9N,EAAS8N,CAAe,EAAE3K,GAAQwK,GAAQF,CAAQ;AAAA,UACnD,SAAQ9R,GAAG;AACV,YAAAsF,GAAatF,GAAGqF,CAAG;AAAA,UACjC;AAAA,QACA,CAAW;AAAA,MAEX;AACM,OAAK4E,IAAS,QAAuD,KACnEsG,GAAejM,GAAS,EAAK;AAAA,IAErC;AAAA,EACA;AACA,GAGI8N,KAAiB,CAACC,GAAM7N,GAASyF,MAAU;AAC7C,MAAI1F,GAAIkL;AACR,QAAM6C,IAAYD,EAAK;AACvB,MAAI7N,EAAQ,aAAcA,EAAQ,cAAc6N,EAAK,UAAW;AAC9D,IAAIA,EAAK,YAAY,CAAC7N,EAAQ,eAC5BA,EAAQ,aAAa6N,EAAK;AAE5B,UAAME,IAAU,OAAO,SAAShO,IAAKC,EAAQ,cAAc,OAAOD,IAAK,EAAE;AACzE,IAAAgO,EAAQ,IAAI,CAAC,CAAC9N,GAAY,CAACC,CAAW,CAAC,MAAM;AAC3C,UAAKA,IAAc,MAAiBA,IAAc,IAAiB;AACjE,cAAM,EAAE,KAAK8N,GAAY,KAAKC,EAAU,IAAK,OAAO,yBAAyBH,GAAW7N,CAAU,KAAK,CAAE;AACzG,QAAI+N,MAAYhO,EAAQ,UAAUC,CAAU,EAAE,CAAC,KAAK,OAChDgO,MAAYjO,EAAQ,UAAUC,CAAU,EAAE,CAAC,KAAK,OAElD,OAAO,eAAe6N,GAAW7N,GAAY;AAAA,UAC3C,MAAM;AAEF,mBAAO+N,IAAaA,EAAW,MAAM,IAAI,IAAIX,GAAS,MAAMpN,CAAU;AAAA,UAEzE;AAAA,UACD,cAAc;AAAA,UACd,YAAY;AAAA,QACxB,CAAW,GAEH,OAAO,eAAe6N,GAAW7N,GAAY;AAAA,UAC3C,IAAII,GAAU;AACZ,kBAAMG,IAAMC,GAAW,IAAI;AAC3B,gBAAIwN,GAAY;AACd,oBAAMC,IAAehO,IAAc,KAAiB,KAAKD,CAAU,IAAIO,EAAI,cAAcP,CAAU;AACnG,cAAI,OAAOiO,IAAiB,OAAe1N,EAAI,iBAAiB,IAAIP,CAAU,IAC5EI,IAAWG,EAAI,iBAAiB,IAAIP,CAAU,IACrC,CAACO,EAAI,iBAAiB,IAAIP,CAAU,KAAKiO,KAClD1N,EAAI,iBAAiB,IAAIP,GAAYiO,CAAY,GAEnDD,EAAW,MAAM,MAAM,CAAC7I,GAAmB/E,GAAUH,CAAW,CAAC,CAAC,GAClEG,IAAWH,IAAc,KAAiB,KAAKD,CAAU,IAAIO,EAAI,cAAcP,CAAU,GACzFsN,GAAS,MAAMtN,GAAYI,GAAUL,CAAO;AAC5C;AAAA,YACd;AACY;AACE,cAAAuN,GAAS,MAAMtN,GAAYI,GAAUL,CAAO;AAC5C;AAAA,YACd;AAAA,UACA;AAAA,QACA,CAAS;AAAA,MACT;AAAA,IACA,CAAK;AACD;AACE,YAAMmO,IAAqC,oBAAI,IAAK;AACpD,MAAAL,EAAU,2BAA2B,SAASM,GAAUrI,GAAU1F,GAAU;AAC1E,QAAAa,GAAI,IAAI,MAAM;AACZ,cAAImN;AACJ,gBAAMf,IAAWa,EAAmB,IAAIC,CAAQ;AAChD,cAAI,OAAK,eAAed,CAAQ,KAAKlO,GAAM,WAGpC;AAAA,gBAAI0O,EAAU,eAAeR,CAAQ,KAAK,OAAO,KAAKA,CAAQ,KAAM;AAAA,YAC3E,KAAKA,CAAQ,KAAKjN;AAChB;AACK,gBAAIiN,KAAY,MAAM;AAC3B,oBAAMxN,IAAUW,GAAW,IAAI,GACzB6N,IAASxO,KAAW,OAAO,SAASA,EAAQ;AAClD,kBAAIwO,KAAU,EAAEA,IAAS,MAAmCA,IAAS,OAA0BjO,MAAa0F,GAAU;AAEpH,sBAAMlG,KADM,MAEN0O,KAASF,IAAMrO,EAAQ,eAAe,OAAO,SAASqO,EAAID,CAAQ;AACxE,gBAAAG,KAAS,QAAgBA,EAAM,QAAQ,CAACC,OAAiB;AACvD,kBAAI3O,GAAS2O,EAAY,KAAK,QAC5B3O,GAAS2O,EAAY,EAAE,KAAK3O,IAAUQ,GAAU0F,GAAUqI,CAAQ;AAAA,gBAEpF,CAAe;AAAA,cACf;AACY;AAAA,YACZ;AAAA;AACU,gBAAMK,IAAW,OAAO,yBAAyBX,GAAWR,CAAQ;AACpE,UAAAjN,IAAWA,MAAa,QAAQ,OAAO,KAAKiN,CAAQ,KAAM,YAAY,KAAQjN,GAC1EA,MAAa,KAAKiN,CAAQ,MAAM,CAACmB,EAAS,OAASA,EAAS,SAC9D,KAAKnB,CAAQ,IAAIjN;AAAA,QAE7B,CAAS;AAAA,MACF,GACDwN,EAAK,qBAAqB,MAAM;AAAA,QACd,oBAAI,IAAI;AAAA,UACtB,GAAG,OAAO,MAAM5C,IAAKjL,EAAQ,eAAe,OAAOiL,IAAK,EAAE;AAAA,UAC1D,GAAG8C,EAAQ;AAAA,YAAO,CAAC,CAAC7Q,GAAGU,CAAC,MAAMA,EAAE,CAAC,IAAI;AAAA;AAAA,UAAsB,EAAC,IAAI,CAAC,CAAC0P,GAAU1P,CAAC,MAAM;AACjF,kBAAMwQ,IAAWxQ,EAAE,CAAC,KAAK0P;AACzB,mBAAAa,EAAmB,IAAIC,GAAUd,CAAQ,GAClCc;AAAA,UACR,CAAA;AAAA,QACF,CAAA;AAAA,MACF;AAAA,IACP;AAAA,EACA;AACE,SAAOP;AACT,GAGIa,KAAsB,OAAO7N,GAAKf,GAASE,GAAS2O,MAAiB;AACvE,MAAK,EAAA7O,EAAQ,UAAU,KAAyC;AAC9D,IAAAA,EAAQ,WAAW;AACnB;AACE,YAAM8O,IAAS/N,EAAI;AACnB,qBAAe,YAAY+N,CAAM,EAAE;AAAA,QAAK,MAAM9O,EAAQ,WAAW;AAAA;AAAA,MAAuB;AAAA,IAC9F;AAAA,EACA;AACE,QAAMgM,IAAoBhM,EAAQ,qBAC5B+O,IAAW,MAAM9C,GAAejM,GAAS,EAAI;AACnD,EAAIgM,KAAqBA,EAAkB,MAAM,IAC/CA,EAAkB,MAAM,EAAE,KAAK+C,CAAQ,IAEvCA,EAAU;AAEd,GACIC,KAAwB,CAACjP,GAAUgB,MAAQ;AAC/C,GAGIkO,KAAoB,CAAClO,MAAQ;AAC/B,MAAK,EAAAK,GAAI,UAAU,IAAkC;AACnD,UAAMpB,IAAUW,GAAWI,CAAG,GACxBb,IAAUF,EAAQ,WAClBkP,IAAelL,GAAW,qBAAqB9D,EAAQ,SAAS;AACtE,QAAMF,EAAQ,UAAU;AA8BtB,MAAIA,KAAW,QAAgBA,EAAQ,kBAA2BA,KAAW,QAAgBA,EAAQ,oBACnGA,EAAQ,iBAAiB,KAAK,MAAMgP,GAAqB,CAAE;AAAA,SA/BhB;AAC7C,MAAAhP,EAAQ,WAAW;AAAA,MAGjBE,EAAQ,UAAW,MACjBiP,GAAoBpO,CAAG;AAG3B;AACE,YAAIiL,IAAoBjL;AACxB,eAAOiL,IAAoBA,EAAkB,cAAcA,EAAkB;AAC3E,cAAIA,EAAkB,KAAK,GAAG;AAC5B,YAAAD,GAAiB/L,GAASA,EAAQ,sBAAsBgM,CAAiB;AACzE;AAAA,UACZ;AAAA,MAEA;AACM,MAAI9L,EAAQ,aACV,OAAO,QAAQA,EAAQ,SAAS,EAAE,IAAI,CAAC,CAACC,GAAY,CAACC,CAAW,CAAC,MAAM;AACrE,YAAIA,IAAc,MAAiBW,EAAI,eAAeZ,CAAU,GAAG;AACjE,gBAAM2C,IAAQ/B,EAAIZ,CAAU;AAC5B,iBAAOY,EAAIZ,CAAU,GACrBY,EAAIZ,CAAU,IAAI2C;AAAA,QAC9B;AAAA,MACA,CAAS,GAGD8L,GAAoB7N,GAAKf,CAAO;AAAA,IAExC;AAKI,IAAAkP,EAAc;AAAA,EAClB;AACA,GACIC,KAAsB,CAACpO,MAAQ;AACjC,QAAMqO,IAAgBrO,EAAI,MAAM,IAAII,GAAI;AAAA,IACtC;AAAA,EACD;AACD,EAAAiO,EAAc,MAAM,IAAI,IACxB5G,GAAazH,GAAKqO,GAAerO,EAAI,UAAU;AACjD,GACIsO,KAAuB,OAAOtO,MAAQ;AACxC,EAAKK,GAAI,UAAU,KACjBT,GAAWI,CAAG,GAEZgF,GAAkB,IAAIhF,CAAG,KAC3BgF,GAAkB,OAAOhF,CAAG,GAE1BA,EAAI,cAAcgF,GAAkB,IAAIhF,EAAI,UAAU,KACxDgF,GAAkB,OAAOhF,EAAI,UAAU;AAE3C,GACIuO,IAAqB,CAACvB,GAAMwB,MAAgB;AAC9C,QAAMrP,IAAU;AAAA,IACd,SAASqP,EAAY,CAAC;AAAA,IACtB,WAAWA,EAAY,CAAC;AAAA,EACzB;AAEC,EAAArP,EAAQ,YAAYqP,EAAY,CAAC,GAGjCrP,EAAQ,aAAa6N,EAAK;AAE5B,QAAMyB,IAA4BzB,EAAK,UAAU,mBAC3C0B,IAA+B1B,EAAK,UAAU;AACpD,gBAAO,OAAOA,EAAK,WAAW;AAAA,IAC5B,2BAA2B;AAAA,IAC3B,iBAAiB;AACf,MAAAnN,GAAa,MAAMV,CAAO;AAAA,IAC3B;AAAA,IACD,oBAAoB;AAClB,MAAK,KAAK,8BACRS,GAAW,IAAI,GACf,KAAK,4BAA4B,KAEnCsO,GAAkB,IAAI,GAClBO,KACFA,EAA0B,KAAK,IAAI;AAAA,IAEtC;AAAA,IACD,uBAAuB;AACrB,MAAAH,GAAqB,IAAI,GACrBI,KACFA,EAA6B,KAAK,IAAI,GAExCrO,GAAI,IAAI,MAAM;AACZ,YAAInB;AACJ,cAAMD,IAAUW,GAAW,IAAI;AAC/B,UAAMV,IAAKD,KAAW,OAAO,SAASA,EAAQ,YAAY,OAAO,SAASC,EAAG,kBAAkB,QAAQ,CAACD,EAAQ,QAAQ,MAAM,eAC5H,OAAOA,EAAQ,SAEb,gBAAgB,QAAQ,CAAC,KAAK,eAChCS,GAAc,IAAI;AAAA,MAE5B,CAAO;AAAA,IACF;AAAA,IACD,iBAAiB;AAEb,WAAK,aAAa;AAAA,IAE1B;AAAA,EACA,CAAG,GACDsN,EAAK,KAAK7N,EAAQ,WACX4N,GAAeC,GAAM7N,CAA0D;AACxF,GAGIwP,KAAW,CAACtS,GAAGiH,MAAaA,GCn1C5BnJ,KAAI,OAAO,gBACXC,KAAI,CAACC,GAAG,GAAG,MAAM,KAAKA,IAAIF,GAAEE,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAC,CAAE,IAAIA,EAAE,CAAC,IAAI,GACzGC,KAAI,CAACD,GAAG,GAAG,MAAMD,GAAEC,GAAG,OAAO,KAAK,WAAW,IAAI,KAAK,GAAG,CAAC,GAC1DuU,KAAqB,kBAACvU,OAAOA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,OAAO,CAAC,IAAI,QAAQA,EAAEA,EAAE,QAAQ,CAAC,IAAI,SAASA,IAAIuU,MAAK,CAAA,CAAE;AAChJ,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG;AACb,IAAAvU,GAAE,MAAM,UAAU,GAClBA,GAAE,MAAM,cAAc,GACtB,KAAK,WAAW,EAAE,YAAY,GAAG,KAAK,eAAe,EAAE,gBAAgB,KAAK;AAAA,EAChF;AAAA,EACE,iBAAiB,GAAG,GAAG;AACrB,WAAO,IAAIsU,GAAE,CAAC,CAAC,MAAO,oBAAI,KAAM,GAAE,YAAW,CAAE,KAAK,CAAC;AAAA,EACzD;AAAA,EACE,MAAM,GAAG;AACP,SAAK,YAAY,KAAK,QAAQ,IAAI,KAAK,aAAa,GAAG,CAAC,CAAC;AAAA,EAC7D;AAAA,EACE,KAAK,GAAG;AACN,SAAK,YAAY,KAAK,QAAQ,KAAK,KAAK,aAAa,GAAG,CAAC,CAAC;AAAA,EAC9D;AAAA,EACE,KAAK,GAAG;AACN,SAAK,YAAY,KAAK,QAAQ,KAAK,KAAK,aAAa,GAAG,CAAC,CAAC;AAAA,EAC9D;AAAA,EACE,MAAM,GAAG;AACP,SAAK,YAAY,KAAK,QAAQ,MAAM,KAAK,aAAa,GAAG,CAAC,CAAC;AAAA,EAC/D;AAAA,EACE,IAAI,GAAG,GAAG;AACR,YAAQ,GAAC;AAAA,MACP,KAAK;AACH,aAAK,MAAM,CAAC;AACZ;AAAA,MACF,KAAK;AACH,aAAK,KAAK,CAAC;AACX;AAAA,MACF,KAAK;AACH,aAAK,KAAK,CAAC;AACX;AAAA,MACF,KAAK;AACH,aAAK,MAAM,CAAC;AACZ;AAAA,IACR;AAAA,EACA;AACA;AACA,SAASrU,GAAEF,GAAG,GAAG,GAAGG,GAAG;AACrB,SAAO,KAAK,MAAM,IAAI,UAAU,SAASC,GAAGC,GAAG;AAC7C,aAASC,EAAEC,GAAG;AACZ,UAAI;AACF,QAAAC,EAAEL,EAAE,KAAKI,CAAC,CAAC;AAAA,MACZ,SAAQE,GAAG;AACV,QAAAJ,EAAEI,CAAC;AAAA,MACX;AAAA,IACA;AACI,aAAS,EAAEF,GAAG;AACZ,UAAI;AACF,QAAAC,EAAEL,EAAE,MAAMI,CAAC,CAAC;AAAA,MACb,SAAQE,GAAG;AACV,QAAAJ,EAAEI,CAAC;AAAA,MACX;AAAA,IACA;AACI,aAASD,EAAED,GAAG;AACZ,UAAIE;AACJ,MAAAF,EAAE,OAAOH,EAAEG,EAAE,KAAK,KAAKE,IAAIF,EAAE,OAAOE,aAAa,IAAIA,IAAI,IAAI,EAAE,SAASC,GAAG;AACzE,QAAAA,EAAED,CAAC;AAAA,MACX,CAAO,GAAG,KAAKH,GAAG,CAAC;AAAA,IACnB;AACI,IAAAE,GAAGL,IAAIA,EAAE,MAAMH,GAAG,CAAE,CAAA,GAAG,MAAM;AAAA,EACjC,CAAG;AACH;AACA,SAASW,GAAEX,GAAG,GAAG;AACf,MAAI,GAAGG,GAAGC,GAAGC,GAAGC,IAAI,EAAE,OAAO,GAAG,MAAM,WAAW;AAC/C,QAAI,IAAIF,EAAE,CAAC,EAAG,OAAMA,EAAE,CAAC;AACvB,WAAOA,EAAE,CAAC;AAAA,EACX,GAAE,MAAM,CAAA,GAAI,KAAK,GAAI;AACtB,SAAOC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAG,GAAE,OAAO,UAAU,eAAeA,EAAE,OAAO,QAAQ,IAAI,WAAW;AACpH,WAAO;AAAA,EACR,IAAGA;AACJ,WAAS,EAAEG,GAAG;AACZ,WAAO,SAASD,GAAG;AACjB,aAAO,SAASE,GAAG;AACjB,YAAI,EAAG,OAAM,IAAI,UAAU,iCAAiC;AAC5D,eAAOJ,MAAMA,IAAI,GAAGI,EAAE,CAAC,MAAMH,IAAI,KAAKA,IAAK,KAAI;AAC7C,cAAI,IAAI,GAAGH,MAAMC,IAAI,IAAIK,EAAE,CAAC,IAAIN,EAAE,SAASM,EAAE,CAAC,IAAIN,EAAE,WAAWC,IAAID,EAAE,WAAWC,EAAE,KAAKD,CAAC,GAAG,KAAKA,EAAE,SAAS,EAAEC,IAAIA,EAAE,KAAKD,GAAGM,EAAE,CAAC,CAAC,GAAG,KAAM,QAAOL;AAC/I,kBAAQD,IAAI,GAAGC,MAAMK,IAAI,CAAC,IAAIA,EAAE,CAAC,GAAGL,EAAE,KAAK,IAAIK,EAAE,CAAC,GAAC;AAAA,YACjD,KAAK;AAAA,YACL,KAAK;AACH,cAAAL,IAAIK;AACJ;AAAA,YACF,KAAK;AACH,qBAAOH,EAAE,SAAS,EAAE,OAAOG,EAAE,CAAC,GAAG,MAAM,GAAI;AAAA,YAC7C,KAAK;AACH,cAAAH,EAAE,SAASH,IAAIM,EAAE,CAAC,GAAGA,IAAI,CAAC,CAAC;AAC3B;AAAA,YACF,KAAK;AACH,cAAAA,IAAIH,EAAE,IAAI,IAAK,GAAEA,EAAE,KAAK,IAAK;AAC7B;AAAA,YACF;AACE,kBAAIF,IAAIE,EAAE,MAAM,GAAGF,IAAIA,EAAE,SAAS,KAAKA,EAAEA,EAAE,SAAS,CAAC,MAAMK,EAAE,CAAC,MAAM,KAAKA,EAAE,CAAC,MAAM,IAAI;AACpF,gBAAAH,IAAI;AACJ;AAAA,cAChB;AACc,kBAAIG,EAAE,CAAC,MAAM,MAAM,CAACL,KAAKK,EAAE,CAAC,IAAIL,EAAE,CAAC,KAAKK,EAAE,CAAC,IAAIL,EAAE,CAAC,IAAI;AACpD,gBAAAE,EAAE,QAAQG,EAAE,CAAC;AACb;AAAA,cAChB;AACc,kBAAIA,EAAE,CAAC,MAAM,KAAKH,EAAE,QAAQF,EAAE,CAAC,GAAG;AAChC,gBAAAE,EAAE,QAAQF,EAAE,CAAC,GAAGA,IAAIK;AACpB;AAAA,cAChB;AACc,kBAAIL,KAAKE,EAAE,QAAQF,EAAE,CAAC,GAAG;AACvB,gBAAAE,EAAE,QAAQF,EAAE,CAAC,GAAGE,EAAE,IAAI,KAAKG,CAAC;AAC5B;AAAA,cAChB;AACc,cAAAL,EAAE,CAAC,KAAKE,EAAE,IAAI,OAAOA,EAAE,KAAK,IAAK;AACjC;AAAA,UACd;AACU,UAAAG,IAAI,EAAE,KAAKT,GAAGM,CAAC;AAAA,QAChB,SAAQI,GAAG;AACV,UAAAD,IAAI,CAAC,GAAGC,CAAC,GAAGP,IAAI;AAAA,QAC1B,UAAkB;AACR,cAAIC,IAAI;AAAA,QAClB;AACQ,YAAI,IAAIK,EAAE,CAAC,EAAG,OAAMA,EAAE,CAAC;AACvB,eAAO,EAAE,OAAOA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,QAAQ,MAAM,GAAI;AAAA,MACxD,EAAQ,CAACD,GAAGD,CAAC,CAAC;AAAA,IACT;AAAA,EACL;AACA;AACG,IAACK,KAAI,EAAE,SAAS,CAAE,EAAA,GAAIC,KAAI,CAAE,GAA2BE,KAAI,SAASf,GAAG,GAAG;AAC3E,SAAO,SAAS,QAAQa,GAAEb,CAAC,IAAI;AACjC;AAQA,SAASiB,GAAEjB,GAAG;AACZ,SAAOA,KAAKA,MAAM,IAAIA,IAAI,KAAK,KAAKA,GAAG,UAAU,GAAGA,KAAKA,MAAM,IAAIA,IAAI,KAAK,KAAKA,GAAG,UAAU,IAAIA,KAAKA,MAAM,QAAQ;AACvH;AACA,IAAIkB,IAAI,IAAI,YAAY,CAAC,WAAW,YAAY,WAAW,UAAU,CAAC;AACtE,SAASC,GAAEnB,GAAG,GAAG;AACf,SAAOA,KAAK,IAAIA,MAAM,KAAK;AAC7B;AACA,SAASoB,GAAEpB,GAAG,GAAG;AACf,MAAI;AACJ,MAAI,MAAM,WAAW,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,OAAOA,KAAK,aAAa,IAAIA,GAAGA,IAAI,IAAI,YAAW,EAAG,OAAO,CAAC,EAAE,SAAS,EAAEA,aAAa,aAAc,OAAM,IAAI,UAAU,0CAA0C;AACpN,MAAIG,IAAI,IAAI,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACpC,GAAE,SAASE,GAAGC,GAAG;AACf,aAAS,IAAID,EAAE,aAAa,KAAK,GAAGG,IAAI,IAAI,YAAYH,GAAG,GAAG,IAAI,CAAC,GAAGE,IAAI,GAAGA,IAAI,GAAGA,KAAK;AACvF,UAAIE,IAAID,EAAE,SAAS,IAAID,GAAG,KAAKA,IAAI,EAAE;AACrC,MAAAE,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI,YAAYG,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI,WAAWG,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI,YAAYG,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGT,EAAE,CAAC,IAAIU,GAAEV,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGS,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIG,EAAE,CAAC,GAAGH,EAAE,CAAC,IAAIa,GAAEb,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAG,CAAC,IAAI;AAAA,IACzsB;AAAA,EACG,GAAGN,GAAGG,CAAC,GAAG,SAASE,GAAGC,GAAG;AACxB,QAAI,IAAID,EAAE,aAAa,KAAK,GAAGG,IAAIH,EAAE,aAAa,IAAIE,IAAI,IAAI,YAAY,CAAC,GAAGE,IAAI,IAAI,WAAWJ,GAAG,KAAK,GAAGG,CAAC;AAC7G,YAAQA,GAAC;AAAA,MACP,KAAK;AACH,QAAAD,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,MAC7H,KAAK;AACH,QAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,EAAE,KAAK;AAAA,MACzB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,MAC5H,KAAK;AACH,QAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,MAC5H,KAAK;AACH,QAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK;AAAA,MACxB,KAAK;AACH,QAAAF,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIE,EAAE,CAAC,KAAK,GAAGF,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGX,EAAE,CAAC,IAAIY,GAAEZ,EAAE,CAAC,GAAG,EAAE,GAAGA,EAAE,CAAC,IAAI,KAAK,KAAKA,EAAE,CAAC,GAAGW,EAAE,CAAC,CAAC,GAAGZ,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,IAClI;AAAA,EACG,EAACP,GAAGG,CAAC,GAAG,SAASE,GAAGC,GAAG;AACtB,IAAAA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAE,YAAYC,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIW,GAAEX,EAAE,CAAC,CAAC,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAI;AAAA,EACjd,EAAIN,GAAGG,CAAC;AACN,MAAIC,IAAI,IAAI,WAAWD,EAAE,MAAM;AAC/B,SAAO,MAAM,KAAKC,CAAC,EAAE,IAAI,SAASC,GAAG;AACnC,WAAOA,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,EACzC,CAAG,EAAE,KAAK,EAAE;AACZ;AAmEA,SAASqB,GAAE1B,GAAG;AACZ,WAAS,IAAI,GAAG,IAAI,GAAG,IAAIA,EAAE,QAAQ,EAAE,EAAG,MAAK,KAAK,IAAIA,EAAE,CAAC,CAAC;AAC5D,SAAO;AACT;AACA,SAAS2B,GAAE3B,GAAG,GAAG,GAAG;AAClB,WAASG,IAAI,IAAIC,IAAI,GAAGA,IAAIJ,EAAE,CAAC,EAAE,KAAK,QAAQI,KAAK;AACjD,aAASC,IAAI,IAAIC,IAAI,GAAGA,IAAIN,EAAE,QAAQM,IAAK,CAAAD,EAAE,KAAKL,EAAEM,CAAC,EAAE,KAAKF,CAAC,CAAC;AAC9D,IAAAD,EAAE,KAAKyB,GAAEvB,CAAC,CAAC;AAAA,EACf;AACE,MAAI,IAAI,IAAI,kBAAkBF,CAAC;AAC/B,SAAO,IAAI,UAAU,GAAG,GAAG,CAAC;AAC9B;AACA,SAASyB,GAAE5B,GAAG;AACZ,MAAIA,EAAE,WAAW,EAAG,QAAO;AAC3B,WAAS,IAAI,IAAI,IAAI,GAAGG,IAAIH,GAAG,IAAIG,EAAE,QAAQ;AAC3C,MAAEE,IAAIF,EAAE,CAAC,CAAC,KAAK,EAAEE,CAAC,KAAK,KAAK;AAC9B,MAAID,IAAIJ,EAAE,CAAC;AACX,WAASK,KAAK,EAAG,GAAEA,CAAC,IAAI,EAAED,CAAC,MAAMA,IAAI,SAASC,GAAG,EAAE;AACnD,SAAOD;AACT;AACA,SAASyB,KAAI;AACX,MAAI,OAAO,YAAY,IAAK,QAAO,EAAE,MAAM,WAAW,SAAS,UAAW;AAC1E,WAAS7B,IAAI,UAAU,WAAW,IAAI,EAAE,KAAK,QAAQ,KAAK,WAAW,IAAI,GAAGG,IAAI,CAAC,gDAAgD,mFAAmF,6EAA6E,8CAA8C,8DAA8D,iDAAiD,oDAAoD,GAAG,IAAIA,EAAE,QAAQ,KAAK;AACtgB,QAAIC,IAAID,EAAE,CAAC,GAAGE,IAAIL,EAAE,MAAMI,CAAC;AAC3B,QAAIC,KAAKA,EAAE,OAAQ,QAAO,EAAE,MAAM,EAAEA,EAAE,OAAO,IAAI,KAAKA,EAAE,OAAO,MAAM,SAASA,EAAE,OAAO,QAAS;AAAA,EACpG;AACE,SAAO,EAAE,MAAM,WAAW,SAAS,UAAW;AAChD;AACAU,GAAE,SAAS,WAAW;AACpB,SAAOb,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,WAAOS,GAAE,MAAM,SAASX,GAAG;AACzB,aAAO,CAAC,GAAG,IAAI,QAAQ,SAAS,GAAG,GAAG;AACpC,YAAI;AACF,cAAIG,IAAI,KAAK,OAAO,uBAAuB,OAAO,2BAA2B,GAAG,KAAK,KAAK,GAAGC,IAAID,EAAE,mBAAoB,GAAEE,IAAIF,EAAE,iBAAkB;AACjJ,UAAAE,EAAE,UAAU,QAAQ;AACpB,cAAIC,GAAG,IAAIH,EAAE,yBAA0B;AACvC,YAAE,UAAU,QAAQ,KAAK,EAAE,KAAK,QAAQ,IAAI,EAAE,MAAM,QAAQ,IAAI,EAAE,OAAO,QAAQ,GAAG,EAAE,QAAQ,QAAQ,KAAKE,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQF,EAAE,WAAW,GAAGE,EAAE,MAAK,GAAIF,EAAE,aAAa,SAASK,GAAG;AACvL,YAAAF,IAAIE,EAAE,eAAe,eAAe,CAAC,GAAG,EAAE,EAAE,YAAYkB,GAAEpB,CAAC,GAAG,YAAYD,EAAE,MAAM,aAAaF,EAAE,YAAY,iBAAiB,kBAAkBC,EAAE,kBAAkB;AAAA,UAChL,GAAaD,EAAE,eAAgB;AAAA,QACtB,SAAQK,GAAG;AACV,kBAAQ,MAAM,qCAAqCA,CAAC,GAAG,EAAEA,CAAC;AAAA,QACpE;AAAA,MACA,CAAO,CAAC;AAAA,IACR,CAAK;AAAA,EACL,CAAG;AACH,CAAC;AACD,IAAIsB,KAAID,KAAI,SAAS,mBAAmB,IAAI,GAAGE,KAAI,KAAKC,KAAI;AAC5DH,GAAC,EAAG,QAAQ,aAAad,GAAE,UAAU,WAAW;AAC9C,SAAO,SAAS,cAAc,QAAQ,EAAE,WAAW,IAAI,GAAG,IAAI,QAAQ,SAASf,GAAG;AAChF,QAAI,IAAI,MAAM,KAAK,EAAE,QAAQ8B,GAAC,GAAI,WAAW;AAC3C,aAAO,WAAW;AAChB,YAAI,IAAI,SAAS,cAAc,QAAQ,GAAG3B,IAAI,EAAE,WAAW,IAAI;AAC/D,YAAI,CAACA,EAAG,QAAO,IAAI,UAAU,GAAG,CAAC;AACjC,UAAE,QAAQ4B,IAAG,EAAE,SAASC;AACxB,YAAI5B,IAAID,EAAE,qBAAqB,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AACtD,QAAAC,EAAE,aAAa,GAAG,KAAK,GAAGA,EAAE,aAAa,qBAAqB,QAAQ,GAAGA,EAAE,aAAa,oBAAoB,QAAQ,GAAGA,EAAE,aAAa,KAAK,OAAO,GAAGA,EAAE,aAAa,oBAAoB,MAAM,GAAGA,EAAE,aAAa,oBAAoB,QAAQ,GAAGA,EAAE,aAAa,GAAG,QAAQ,GAAGD,EAAE,YAAYC,GAAGD,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AAC/T,YAAIE,IAAI;AACR,QAAAF,EAAE,OAAO,kBAAkBA,EAAE,YAAY,SAASA,EAAE,SAASE,GAAG,IAAI,EAAE,GAAGF,EAAE,YAAY,wBAAwBA,EAAE,SAASE,GAAG,MAAM,IAAI,GAAGF,EAAE,UAAW,GAAEA,EAAE,OAAO,GAAG,CAAC,GAAGA,EAAE,OAAO,IAAI,EAAE,QAAQ,GAAG,EAAE,MAAM,GAAGA,EAAE,cAAc,SAASA,EAAE,YAAY,GAAGA,EAAE,OAAQ;AAClQ,YAAIG,IAAIH,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM;AAC9C,eAAOG;AAAA,MACf,EAAS;AAAA,IACT,CAAK;AACD,IAAAN,EAAE,EAAE,qBAAqBoB,GAAEO,GAAE,GAAGI,IAAGC,EAAC,EAAE,KAAK,SAAU,CAAA,EAAE,SAAU,EAAA,CAAE;AAAA,EACvE,CAAG;AACH,CAAC;AACD,IAAIC,IAAGC,KAAI,CAAC,SAAS,eAAe,gBAAgB,oBAAoB,SAAS,WAAW,UAAU,cAAc,UAAU,WAAW,WAAW,SAAS,WAAW,WAAW,kBAAkB,iBAAiB,cAAc,WAAW,eAAe,gBAAgB,WAAW,WAAW,oBAAoB,iBAAiB,SAAS,cAAc,OAAO,aAAa,aAAa,0BAA0B,YAAY,UAAU,WAAW,aAAa,aAAa,UAAU,eAAe,gBAAgB,SAAS,gBAAgB,SAAS,QAAQ,UAAU,iBAAiB,kBAAkB,uBAAuB,WAAW,gBAAgB,qBAAqB,cAAc,UAAU,aAAa,UAAU,eAAe,aAAa,UAAU,YAAY,UAAU,YAAY,YAAY,YAAY,WAAW,YAAY,WAAW,UAAU,eAAe,aAAa,YAAY,aAAa,UAAU,oBAAoB,YAAY,SAAS,eAAe,gBAAgB,YAAY,QAAQ,mBAAmB,cAAc,UAAU,WAAW,SAAS,mBAAmB,iBAAiB,gBAAgB,UAAU,gBAAgB,WAAW,WAAW,GAAGC,KAAI,CAAC,aAAa,cAAc,OAAO;AAChsC,SAASC,GAAEpC,GAAG,GAAG;AACf,MAAI,CAACA,EAAG,OAAM,IAAI,MAAM,8BAA8B;AACtD,SAAOA,EAAE,OAAO,QAAQ,OAAO,CAAC,GAAGA,EAAE,YAAY,YAAY,EAAE;AACjE;AACA,SAASqC,KAAI;AACX,MAAIrC,GAAG,IAAI,SAAS,cAAc,QAAQ,GAAG,KAAKA,IAAI,EAAE,WAAW,OAAO,OAAO,QAAQA,MAAM,SAASA,IAAI,EAAE,WAAW,oBAAoB;AAC7I,MAAI,KAAK,kBAAkB,EAAG,KAAI;AAChC,QAAIG,KAAK,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,SAAU,GAAEC,KAAK,EAAE,aAAa,EAAE,QAAQ,KAAK,IAAI,YAAYC,IAAI,EAAE,QAAQF,GAAG,UAAUC,GAAG,UAAU,EAAE,aAAa,EAAE,OAAO,KAAK,IAAI,SAAQ,GAAI,yBAAyB,EAAE,aAAa,EAAE,wBAAwB,KAAK,IAAI,WAAY;AACpR,QAAI,CAACA,EAAE,UAAU,CAACD,EAAE,QAAQ;AAC1B,UAAIG,IAAI,EAAE,aAAa,2BAA2B;AAClD,UAAIA,GAAG;AACL,YAAI,KAAK,EAAE,aAAaA,EAAE,qBAAqB,KAAK,IAAI,SAAU,GAAEE,KAAK,EAAE,aAAaF,EAAE,uBAAuB,KAAK,IAAI,SAAU;AACpI,cAAMD,EAAE,iBAAiB,IAAIG,MAAMH,EAAE,mBAAmBG;AAAA,MAChE;AAAA,IACA;AACI,WAAOH;AAAA,EACX,QAAU;AAAA,EACV;AACE,SAAO;AACT;AACA,SAASiC,KAAI;AACX,MAAItC,IAAI,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,WAAWA,EAAE,MAAM;AACxD,SAAOA,EAAE,CAAC,IAAI,OAAOA,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAG,EAAE,CAAC;AAC9C;AACA,SAASuC,GAAEvC,GAAG,GAAG;AACf,MAAI,IAAI,CAAE;AACV,SAAO,EAAE,QAAQ,SAASG,GAAG;AAC3B,QAAIC,IAAI,SAASC,GAAG;AAClB,UAAIA,EAAE,WAAW,EAAG,QAAO;AAC3B,UAAIC,IAAI,CAAE;AACV,MAAAD,EAAE,QAAQ,SAASE,GAAG;AACpB,YAAIE,IAAI,OAAOF,CAAC;AAChB,QAAAD,EAAEG,CAAC,KAAKH,EAAEG,CAAC,KAAK,KAAK;AAAA,MAC7B,CAAO;AACD,UAAI,IAAIJ,EAAE,CAAC,GAAGG,IAAI;AAClB,aAAO,OAAO,KAAKF,CAAC,EAAE,QAAQ,SAASC,GAAG;AACxC,QAAAD,EAAEC,CAAC,IAAIC,MAAM,IAAID,GAAGC,IAAIF,EAAEC,CAAC;AAAA,MAC5B,CAAA,GAAG;AAAA,IACV,EAAMP,EAAE,IAAI,SAASK,GAAG;AAClB,aAAOF,KAAKE,IAAIA,EAAEF,CAAC,IAAI;AAAA,IAC7B,CAAK,EAAE,OAAO,SAASE,GAAG;AACpB,aAAOA,MAAM;AAAA,IACnB,CAAK,CAAC;AACF,IAAAD,MAAM,EAAED,CAAC,IAAIC;AAAA,EACd,CAAA,GAAG;AACN;AACA,SAASoC,KAAK;AACZ,MAAIxC,IAAI,CAAE,GAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,QAAQ,OAAO,QAAQ,UAAU,eAAe,GAAG,aAAa,CAAC,SAAS,MAAM,GAAG,eAAe,CAAC,QAAQ,UAAU,MAAM,GAAG,SAAS,CAAC,QAAQ,UAAU,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,GAAG,QAAQ,CAAC,QAAQ,MAAM,GAAG,mBAAmB,CAAC,YAAY,MAAM,GAAG,0BAA0B,CAAC,UAAU,eAAe,GAAG,gCAAgC,CAAC,UAAU,eAAe,GAAG,WAAW,CAAC,QAAQ,gBAAgB,SAAS,GAAG,iBAAiB,CAAC,UAAU,MAAM,EAAG;AACxf,SAAO,OAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,GAAG;AACxC,MAAE,CAAC,EAAE,QAAQ,SAASG,GAAG;AACvB,iBAAW,IAAI,OAAO,GAAG,IAAI,EAAE,OAAOA,GAAG,GAAG,CAAC,EAAE,WAAWH,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,OAAOG,CAAC,CAAC;AAAA,IACnG,CAAK;AAAA,EACF,CAAA,GAAGH;AACN;AACA,SAASyC,KAAK;AACZ,MAAI,OAAO,SAAS,aAAa,YAAY,OAAO,OAAO,mBAAmB,WAAY,KAAI;AAC5F,aAASzC,IAAI,OAAO,gBAAgB,iBAAiB,IAAI,IAAI,IAAI,GAAG,IAAK,KAAIA,EAAE,CAAC,EAAG,QAAO;AAAA,EAC9F,QAAU;AACN,WAAO;AAAA,EACX;AACE,SAAO;AACT;AACA6B,GAAC,EAAG,QAAQ,aAAad,GAAE,SAAS,WAAW;AAC7C,MAAIf,IAAI;AACR,SAAO,IAAI,QAAQ,SAAS,GAAG,GAAG;AAChC,QAAI;AACF,OAAC,SAASG,GAAG;AACX,YAAIC;AACJ,QAAAF,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACjC,cAAIG,GAAGC,GAAG;AACV,iBAAOK,GAAE,MAAM,SAASH,GAAG;AACzB,oBAAQA,EAAE,OAAK;AAAA,cACb,KAAK;AACH,uBAAO,SAAS,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAID,IAAI,IAAI,IAAI,QAAQ,SAASG,GAAG;AACnE,yBAAO,WAAWA,GAAGH,GAAGE,CAAC;AAAA,gBAC3C,CAAiB,EAAG;AAAA,cACN,KAAK;AACH,uBAAOD,EAAE,KAAI,GAAI,CAAC,GAAG,CAAC;AAAA,cACxB,KAAK;AACH,qBAAKH,IAAI,SAAS,cAAc,QAAQ,GAAG,aAAa,eAAe,GAAG,IAAIC,IAAID,EAAE,OAAO,YAAY,YAAY,OAAO,GAAGC,EAAE,YAAY,WAAW,SAAS,WAAW,GAAGA,EAAE,YAAY,cAAc,SAAS,GAAGA,EAAE,YAAY,UAAU,GAAG,GAAGA,EAAE,YAAY,WAAW,GAAG,GAAGD,EAAE,MAAM,eAAe,SAAS,KAAK,YAAYA,CAAC,GAAG,EAAE,IAAIA,EAAE,qBAAqBD,IAAIC,EAAE,mBAAmB,QAAQD,MAAM,SAAS,SAASA,EAAE,WAAY,OAAM,IAAI,MAAM,mCAAmC;AAC9d,uBAAOD,EAAE,EAAE,QAAQ,EAAC,CAAE,GAAG,WAAW,WAAW;AAC7C,2BAAS,KAAK,YAAYE,CAAC;AAAA,gBAC7C,GAAmB,CAAC,GAAG,CAAC,CAAC;AAAA,YACzB;AACY,gBAAIE,GAAGE;AAAA,UACnB,CAAW;AAAA,QACX,CAAS;AAAA,MACF,GAAE,SAASN,GAAG;AACb,YAAIC,IAAID,EAAE;AACV,eAAOD,GAAEF,GAAG,QAAQ,QAAQ,WAAW;AACrC,cAAIK,GAAGC,GAAG,GAAGE;AACb,iBAAOG,GAAE,MAAM,SAASJ,GAAG;AACzB,mBAAOF,IAAID,EAAE,cAAc,QAAQ,GAAGE,IAAID,EAAE,WAAW,IAAI,GAAG,IAAI8B,GAAE,IAAI,SAAS1B,GAAG;AAClF,qBAAO2B,GAAE9B,GAAGG,CAAC;AAAA,YAC3B,CAAa,GAAGD,IAAI,CAAE,GAAE0B,GAAE,QAAQ,SAASzB,GAAG;AAChC,kBAAIC,IAAI0B,GAAE9B,GAAGG,CAAC;AACd,gBAAE,SAASC,CAAC,MAAMF,EAAEC,CAAC,IAAIC;AAAA,YAC1B,CAAA,GAAG,EAAEF,CAAC,GAAG,CAAC,CAAC;AAAA,UACxB,CAAW;AAAA,QACX,CAAS;AAAA,MACT,CAAO;AAAA,IACP,QAAY;AACN,QAAE,EAAE,OAAO,eAAe;AAAA,IAChC;AAAA,EACA,CAAG;AACH,CAAC,GAAGO,GAAE,YAAY,WAAW;AAC3B,SAAO,IAAI,QAAQ,SAASf,GAAG,GAAG;AAChC,QAAI,IAAI,UAAU,iBAAiB,SAAS,UAAU,eAAe,GAAGG,IAAI,OAAO,eAAe,OAAO,YAAY,SAAS,OAAO,YAAY,SAAS;AAC1J,IAAAH,EAAE,EAAE,WAAWqC,GAAG,GAAE,cAAcC,GAAC,GAAI,cAAc,EAAE,SAAQ,KAAM,aAAa,iBAAiBnC,EAAE,mBAAmB,GAAG;AAAA,EAC/H,CAAG;AACH,CAAC,GAAGY,GAAE,WAAW,WAAW;AAC1B,SAAO,IAAI,QAAQ,SAASf,GAAG;AAC7B,IAAAA,EAAE,EAAE,WAAW,UAAU,UAAU,UAAU,KAAK,eAAgB,EAAC,gBAAiB,EAAC,SAAQ,CAAE;AAAA,EACnG,CAAG;AACH,CAAC,GAAGe,GAAE,eAAe,WAAW;AAC9B,SAAOb,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,QAAIF;AACJ,WAAOW,GAAE,MAAM,SAAS,GAAG;AACzB,aAAOsB,MAAKrB,MAAK,OAAO,SAASA,GAAE,yBAAyB,CAAC,iBAAiB,iBAAiB,wBAAwB,wBAAwB,oBAAoB,mBAAmB,aAAa,UAAU,kBAAkB,mBAAmB,eAAe,mBAAmB,aAAa,eAAe,eAAe,gBAAgB,cAAc,QAAQ,OAAO,iBAAiB,mBAAmB,sBAAsB,QAAQ,WAAW,kBAAkB,4BAA4B,qBAAqB,OAAO,GAAGZ,IAAI,MAAM,KAAK,EAAE,SAASY,MAAK,OAAO,SAASA,GAAE,YAAY,EAAG,GAAE,WAAW;AACjlB,eAAO,WAAW;AAChB,iBAAOV,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,gBAAI,GAAGC,GAAGC,GAAGC,GAAGC;AAChB,mBAAOK,GAAE,MAAM,SAAS,GAAG;AACzB,sBAAQ,EAAE,OAAK;AAAA,gBACb,KAAK;AACH,sBAAI,CAAA,GAAIR,IAAI,GAAGC,IAAI6B,IAAG,EAAE,QAAQ;AAAA,gBAClC,KAAK;AACH,sBAAI,EAAE9B,IAAIC,EAAE,QAAS,QAAO,CAAC,GAAG,CAAC;AACjC,kBAAAC,IAAID,EAAED,CAAC,GAAG,EAAE,QAAQ;AAAA,gBACtB,KAAK;AACH,yBAAO,EAAE,KAAK,KAAK,CAAC,GAAG,GAAC,EAAI,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,YAAY,MAAM,EAAE,MAAME,EAAC,CAAE,CAAC;AAAA,gBAC/E,KAAK;AACH,yBAAOC,IAAI,EAAE,KAAM,GAAE,EAAED,CAAC,IAAIC,EAAE,MAAM,SAAQ,GAAI,CAAC,GAAG,CAAC;AAAA,gBACvD,KAAK;AACH,yBAAO,EAAE,KAAI,GAAI,CAAC,GAAG,CAAC;AAAA,gBACxB,KAAK;AACH,yBAAOH,KAAK,CAAC,GAAG,CAAC;AAAA,gBACnB,KAAK;AACH,yBAAO,CAAC,GAAG,CAAC;AAAA,cAC9B;AAAA,YACA,CAAa;AAAA,UACb,CAAW;AAAA,QACX,EAAW;AAAA,MACX,CAAO,GAAG,CAAC,GAAG,QAAQ,IAAIH,CAAC,EAAE,KAAK,SAAS,GAAG;AACtC,eAAOuC,GAAE,GAAGN,EAAC;AAAA,MACrB,CAAO,CAAC;AAAA,IACR,CAAK;AAAA,EACL,CAAG;AACH,CAAC,GAAGlB,GAAE,WAAW,WAAW;AAC1B,MAAIf,IAAI,CAAE;AACV,MAAI,UAAU,QAAS,UAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,QAAQ,KAAK;AACxE,QAAI,IAAI,UAAU,QAAQ,CAAC;AAC3B,IAAAA,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC;AAAA,EACxD;AACE,SAAO,IAAI,QAAQ,SAASG,GAAG;AAC7B,IAAAA,EAAE,EAAE,SAASH,GAAG;AAAA,EACpB,CAAG;AACH,CAAC,GAAGe,GAAE,UAAU,WAAW;AACzB,SAAO,IAAI,QAAQ,SAASf,GAAG;AAC7B,IAAAA,EAAE,EAAE,gBAAgB,UAAU,iBAAiB,GAAG,gBAAgB,UAAU,gBAAgB,YAAY,OAAO,YAAY,cAAcwC,GAAI,EAAA,CAAE;AAAA,EACnJ,CAAG;AACH,CAAC,GAAGzB,GAAE,UAAU,WAAW;AACzB,SAAO,IAAI,QAAQ,SAASf,GAAG;AAC7B,QAAI,IAAI6B,GAAG;AACX,IAAA7B,EAAE,EAAE,UAAU,OAAO,UAAU,UAAU,eAAe,OAAO,UAAU,eAAe,YAAY,UAAU,YAAY,SAAS,UAAU,SAAS,WAAW,UAAU,WAAW,qBAAqB,UAAU,qBAAqB,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,QAAS,GAAE,iBAAiByC,GAAE,GAAI;AAAA,EACpT,CAAG;AACH,CAAC;AACD,IAAIC,GAAGC,KAAKd,KAAI,SAAS,mBAAmB,IAAI,GAAGe,IAAI;AACvD7B,GAAE,SAAS,WAAW;AACpB,SAAOb,GAAE,MAAM,QAAQ,QAAQ,WAAW;AACxC,QAAIF;AACJ,WAAOW,GAAE,MAAM,SAAS,GAAG;AACzB,aAAO,WAAW,SAAS+B,IAAI,SAAS,cAAc,QAAQ,GAAG,QAAQ,KAAKA,EAAE,SAAS,KAAKE,IAAIF,EAAE,WAAW,OAAO;AACtH,UAAI;AACF,YAAI,CAACE,EAAG,OAAM,IAAI,MAAM,qBAAqB;AAC7C,eAAO5C,IAAI,MAAM,KAAK,EAAE,QAAQ2C,GAAE,GAAI,WAAW;AAC/C,iBAAO,WAAW;AAChB,gBAAI;AACF,kBAAI,CAACC,EAAG,OAAM,IAAI,MAAM,qBAAqB;AAC7C,kBAAI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKbzC,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,SAKJC,IAAIwC,EAAE,aAAaA,EAAE,aAAa,GAAGvC,IAAIuC,EAAE,aAAaA,EAAE,eAAe;AACpE,kBAAI,CAACxC,KAAK,CAACC,EAAG,OAAM,IAAI,MAAM,0BAA0B;AACxD,kBAAIuC,EAAE,aAAaxC,GAAG,CAAC,GAAGwC,EAAE,aAAavC,GAAGF,CAAC,GAAGyC,EAAE,cAAcxC,CAAC,GAAG,CAACwC,EAAE,mBAAmBxC,GAAGwC,EAAE,cAAc,EAAG,OAAM,IAAI,MAAM,uCAAuCA,EAAE,iBAAiBxC,CAAC,CAAC;AAC5L,kBAAIwC,EAAE,cAAcvC,CAAC,GAAG,CAACuC,EAAE,mBAAmBvC,GAAGuC,EAAE,cAAc,EAAG,OAAM,IAAI,MAAM,yCAAyCA,EAAE,iBAAiBvC,CAAC,CAAC;AAClJ,kBAAIC,IAAIsC,EAAE,cAAe;AACzB,kBAAI,CAACtC,EAAG,OAAM,IAAI,MAAM,iCAAiC;AACzD,kBAAIsC,EAAE,aAAatC,GAAGF,CAAC,GAAGwC,EAAE,aAAatC,GAAGD,CAAC,GAAGuC,EAAE,YAAYtC,CAAC,GAAG,CAACsC,EAAE,oBAAoBtC,GAAGsC,EAAE,WAAW,EAAG,OAAM,IAAI,MAAM,oCAAoCA,EAAE,kBAAkBtC,CAAC,CAAC;AACtL,cAAAsC,EAAE,WAAWtC,CAAC;AACd,uBAAS,IAAI,KAAKE,IAAI,IAAI,aAAa,IAAI,CAAC,GAAGD,IAAI,IAAI,KAAK,KAAK,GAAGE,IAAI,GAAGA,IAAI,GAAGA,KAAK;AACrF,oBAAIC,IAAID,IAAIF;AACZ,gBAAAC,EAAE,IAAIC,CAAC,IAAI,GAAGD,EAAE,IAAIC,IAAI,CAAC,IAAI,GAAGD,EAAE,IAAIC,IAAI,CAAC,IAAI,KAAK,IAAIC,CAAC,KAAKgC,EAAE,QAAQ,IAAIlC,EAAE,IAAIC,IAAI,CAAC,IAAI,KAAK,IAAIC,CAAC,KAAKgC,EAAE,SAAS;AAAA,cACrI;AACc,kBAAIG,IAAID,EAAE,aAAc;AACxB,cAAAA,EAAE,WAAWA,EAAE,cAAcC,CAAC,GAAGD,EAAE,WAAWA,EAAE,cAAcpC,GAAGoC,EAAE,WAAW;AAC9E,kBAAIE,IAAIF,EAAE,kBAAkBtC,GAAG,UAAU;AACzC,cAAAsC,EAAE,wBAAwBE,CAAC,GAAGF,EAAE,oBAAoBE,GAAG,GAAGF,EAAE,OAAO,IAAI,GAAG,CAAC,GAAGA,EAAE,SAAS,GAAG,GAAGF,EAAE,OAAOA,EAAE,MAAM,GAAGE,EAAE,WAAW,GAAG,GAAG,GAAG,CAAC,GAAGA,EAAE,MAAMA,EAAE,gBAAgB,GAAGA,EAAE,WAAWA,EAAE,OAAO,GAAG,IAAI,CAAC;AACxM,kBAAIG,IAAI,IAAI,kBAAkBL,EAAE,QAAQA,EAAE,SAAS,CAAC;AACpD,qBAAOE,EAAE,WAAW,GAAG,GAAGF,EAAE,OAAOA,EAAE,QAAQE,EAAE,MAAMA,EAAE,eAAeG,CAAC,GAAG,IAAI,UAAUA,GAAGL,EAAE,OAAOA,EAAE,MAAM;AAAA,YAC1H,QAAoB;AACN,qBAAO,IAAI,UAAU,GAAG,CAAC;AAAA,YACvC,UAAsB;AACR,cAAAE,MAAMA,EAAE,WAAWA,EAAE,cAAc,IAAI,GAAGA,EAAE,WAAW,IAAI,GAAGA,EAAE,SAAS,GAAG,GAAGA,EAAE,oBAAoBA,EAAE,mBAAmB,GAAGA,EAAE,WAAW,GAAG,GAAG,GAAG,CAAC;AAAA,YAClK;AAAA,UACA,EAAa;AAAA,QACb,CAAS,GAAG,CAAC,GAAG,EAAE,iBAAiBxB,GAAEO,GAAE3B,GAAG0C,EAAE,OAAOA,EAAE,MAAM,EAAE,KAAK,SAAQ,CAAE,EAAE,SAAQ,GAAI;AAAA,MAC1F,QAAc;AACN,eAAO,CAAC,GAAG,EAAE,OAAO,cAAa,CAAE;AAAA,MAC3C;AACM,aAAO,CAAC,CAAC;AAAA,IACf,CAAK;AAAA,EACL,CAAG;AACH,CAAC;AACD,IAAIM,KAAI,SAAShD,GAAG,GAAG,GAAGG,GAAG;AAC3B,WAASC,KAAK,IAAI,KAAKD,GAAGE,IAAI,GAAGC,IAAI,GAAGA,IAAIH,GAAGG;AAC7C,IAAAD,KAAKL,EAAE,KAAKM,IAAI,OAAOF,CAAC;AAC1B,SAAOC,IAAID;AACb;AACAW,GAAE,QAAQ,WAAW;AACnB,SAAOb,GAAE,QAAQ,QAAQ,QAAQ,WAAW;AAC1C,WAAOS,GAAE,MAAM,SAASX,GAAG;AACzB,aAAO,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAAG,GAAG,MAAMgD,GAAE,KAAK,MAAM,IAAI,GAAG,EAAE,GAAG,MAAMA,GAAE,KAAK,MAAM,IAAI,GAAG,EAAE,GAAG,KAAKA,GAAE,KAAK,KAAK,GAAG,KAAK,IAAI,EAAE,GAAG,MAAM,KAAK,KAAK,IAAI,CAAC,GAAG,GAAG,KAAK,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,UAAU,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,KAAKA,GAAE,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,MAAMA,GAAE,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,KAAK,KAAK,CAAC,GAAG,KAAKA,GAAE,KAAK,KAAK,GAAG,IAAI,KAAK,IAAI,EAAE,GAAG,MAAMA,GAAE,KAAK,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,EAAC,CAAE;AAAA,IAC5c,CAAK;AAAA,EACL,CAAG;AACH,CAAC;AAkVD,IAAIyR,KAAU,CAAE,GAEZC,KAAY,CAAE;AAElB,MAAMC,KAAkB,CAACC,MAAgB;AACvC,MAAIC;AACJ,QAAMC,IAA4B,oBAAI,IAAK,GACrCC,IAAW,CAACC,GAASC,MAAY;AACrC,UAAMC,IAAY,OAAOF,KAAY,aAAaA,EAAQH,CAAK,IAAIG;AACnE,QAAI,CAAC,OAAO,GAAGE,GAAWL,CAAK,GAAG;AAChC,YAAMM,IAAgBN;AACtB,MAAAA,IAASI,MAA4B,OAAOC,KAAc,YAAYA,MAAc,QAAQA,IAAY,OAAO,OAAO,CAAE,GAAEL,GAAOK,CAAS,GAC1IJ,EAAU,QAAQ,CAAC3O,MAAaA,EAAS0O,GAAOM,CAAa,CAAC;AAAA,IACpE;AAAA,EACG,GACKC,IAAW,MAAMP,GAMjBQ,IAAM,EAAE,UAAAN,GAAU,UAAAK,GAAU,iBALV,MAAME,GAKqB,WAJjC,CAACnP,OACjB2O,EAAU,IAAI3O,CAAQ,GACf,MAAM2O,EAAU,OAAO3O,CAAQ,GAEsB,GACxDmP,IAAeT,IAAQD,EAAYG,GAAUK,GAAUC,CAAG;AAChE,SAAOA;AACT,GACME,KAAc,CAACX,MAAgBA,IAAcD,GAAgBC,CAAW,IAAID;AAElFD,GAAU,cAAca;AAExB,IAAIC,KAAU,CAAE,GAEZC,KAAQ,EAAC,SAAS,GAAE,GAEpBC,IAAmB,CAAE;AAEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,IAAIC,KAAqB,OAAO,IAAI,4BAA4B,GAC9DC,KAAoB,OAAO,IAAI,cAAc,GAC7CC,KAAsB,OAAO,IAAI,gBAAgB,GACjDC,KAAyB,OAAO,IAAI,mBAAmB,GACvDC,KAAsB,OAAO,IAAI,gBAAgB,GACjDC,KAAsB,OAAO,IAAI,gBAAgB,GACjDC,KAAqB,OAAO,IAAI,eAAe,GAC/CC,KAAyB,OAAO,IAAI,mBAAmB,GACvDC,KAAsB,OAAO,IAAI,gBAAgB,GACjDC,KAAkB,OAAO,IAAI,YAAY,GACzCC,KAAkB,OAAO,IAAI,YAAY,GACzCC,KAAwB,OAAO;AACjC,SAASC,GAAcC,GAAe;AACpC,SAAaA,MAAT,QAAuC,OAAOA,KAApB,WAA0C,QACxEA,IACGF,MAAyBE,EAAcF,EAAqB,KAC7DE,EAAc,YAAY,GACN,OAAOA,KAAtB,aAAsCA,IAAgB;AAC/D;AACA,IAAIC,KAAuB;AAAA,EACvB,WAAW,WAAY;AACrB,WAAO;AAAA,EACR;AAAA,EACD,oBAAoB,WAAY;AAAA,EAAE;AAAA,EAClC,qBAAqB,WAAY;AAAA,EAAE;AAAA,EACnC,iBAAiB,WAAY;AAAA,EAAA;AAC9B,GACDC,KAAS,OAAO,QAChBC,KAAc,CAAE;AAClB,SAASC,GAAUC,GAAOC,GAASC,GAAS;AAC1C,OAAK,QAAQF,GACb,KAAK,UAAUC,GACf,KAAK,OAAOH,IACZ,KAAK,UAAUI,KAAWN;AAC5B;AACAG,GAAU,UAAU,mBAAmB,CAAE;AACzCA,GAAU,UAAU,WAAW,SAAUI,GAAcC,GAAU;AAC/D,MACe,OAAOD,KAApB,YACe,OAAOA,KAAtB,cACQA,KAAR;AAEA,UAAM;AAAA,MACJ;AAAA,IACD;AACH,OAAK,QAAQ,gBAAgB,MAAMA,GAAcC,GAAU,UAAU;AACvE;AACAL,GAAU,UAAU,cAAc,SAAUK,GAAU;AACpD,OAAK,QAAQ,mBAAmB,MAAMA,GAAU,aAAa;AAC/D;AACA,SAASC,KAAiB;AAAA;AAC1BA,GAAe,YAAYN,GAAU;AACrC,SAASO,GAAcN,GAAOC,GAASC,GAAS;AAC9C,OAAK,QAAQF,GACb,KAAK,UAAUC,GACf,KAAK,OAAOH,IACZ,KAAK,UAAUI,KAAWN;AAC5B;AACA,IAAIW,KAA0BD,GAAc,YAAY,IAAID,GAAc;AAC1EE,GAAuB,cAAcD;AACrCT,GAAOU,IAAwBR,GAAU,SAAS;AAClDQ,GAAuB,uBAAuB;AAC9C,IAAIC,KAAc,MAAM,SACtBC,IAAuB,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAM,GAC7DC,KAAiB,OAAO,UAAU;AACpC,SAASC,GAAaC,GAAMtO,GAAKuO,GAAMC,GAAQC,GAAOf,GAAO;AAC3D,SAAAa,IAAOb,EAAM,KACN;AAAA,IACL,UAAUlB;AAAA,IACV,MAAM8B;AAAA,IACN,KAAKtO;AAAA,IACL,KAAgBuO,MAAX,SAAkBA,IAAO;AAAA,IAC9B,OAAOb;AAAA,EACR;AACH;AACA,SAASgB,GAAmBC,GAAYC,GAAQ;AAC9C,SAAOP;AAAA,IACLM,EAAW;AAAA,IACXC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAD,EAAW;AAAA,EACZ;AACH;AACA,SAASE,GAAeC,GAAQ;AAC9B,SACe,OAAOA,KAApB,YACSA,MAAT,QACAA,EAAO,aAAatC;AAExB;AACA,SAASuC,GAAO/O,GAAK;AACnB,MAAIgP,IAAgB,EAAE,KAAK,MAAM,KAAK,KAAM;AAC5C,SACE,MACAhP,EAAI,QAAQ,SAAS,SAAUiP,GAAO;AACpC,WAAOD,EAAcC,CAAK;AAAA,EAC3B,CAAA;AAEL;AACA,IAAIC,KAA6B;AACjC,SAASC,GAAcC,GAASzK,GAAO;AACrC,SAAoB,OAAOyK,KAApB,YAAwCA,MAAT,QAA4BA,EAAQ,OAAhB,OACtDL,GAAO,KAAKK,EAAQ,GAAG,IACvBzK,EAAM,SAAS,EAAE;AACvB;AACA,SAAS0K,KAAS;AAAA;AAClB,SAASC,GAAgBC,GAAU;AACjC,UAAQA,EAAS,QAAM;AAAA,IACrB,KAAK;AACH,aAAOA,EAAS;AAAA,IAClB,KAAK;AACH,YAAMA,EAAS;AAAA,IACjB;AACE,cACgB,OAAOA,EAAS,UAA7B,WACGA,EAAS,KAAKF,IAAQA,EAAM,KAC1BE,EAAS,SAAS,WACpBA,EAAS;AAAA,QACP,SAAUC,GAAgB;AACxB,UAAcD,EAAS,WAAvB,cACIA,EAAS,SAAS,aACnBA,EAAS,QAAQC;AAAA,QACrB;AAAA,QACD,SAAUC,GAAO;AACf,UAAcF,EAAS,WAAvB,cACIA,EAAS,SAAS,YAAcA,EAAS,SAASE;AAAA,QACtE;AAAA,MACA,IACQF,EAAS,QACjB;AAAA,QACQ,KAAK;AACH,iBAAOA,EAAS;AAAA,QAClB,KAAK;AACH,gBAAMA,EAAS;AAAA,MACzB;AAAA,EACA;AACE,QAAMA;AACR;AACA,SAASG,GAAa5P,GAAU6P,GAAOC,GAAeC,GAAW/B,GAAU;AACzE,MAAIQ,IAAO,OAAOxO;AAClB,GAAoBwO,MAAhB,eAAsCA,MAAd,eAAoBxO,IAAW;AAC3D,MAAIgQ,IAAiB;AACrB,MAAahQ,MAAT,KAAmB,CAAAgQ,IAAiB;AAAA;AAEtC,YAAQxB,GAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,QAAAwB,IAAiB;AACjB;AAAA,MACF,KAAK;AACH,gBAAQhQ,EAAS,UAAQ;AAAA,UACvB,KAAK0M;AAAA,UACL,KAAKC;AACH,YAAAqD,IAAiB;AACjB;AAAA,UACF,KAAK5C;AACH,mBACG4C,IAAiBhQ,EAAS,OAC3B4P;AAAA,cACEI,EAAehQ,EAAS,QAAQ;AAAA,cAChC6P;AAAA,cACAC;AAAA,cACAC;AAAA,cACA/B;AAAA,YAChB;AAAA,QAEA;AAAA,IACA;AACE,MAAIgC;AACF,WACGhC,IAAWA,EAAShO,CAAQ,GAC5BgQ,IACQD,MAAP,KAAmB,MAAMV,GAAcrP,GAAU,CAAC,IAAI+P,GACxD3B,GAAYJ,CAAQ,KACd8B,IAAgB,IACVE,KAAR,SACGF,IACCE,EAAe,QAAQZ,IAA4B,KAAK,IAAI,MAChEQ,GAAa5B,GAAU6B,GAAOC,GAAe,IAAI,SAAU1V,GAAG;AAC5D,aAAOA;AAAA,IACnB,CAAW,KACO4T,KAAR,SACCe,GAAef,CAAQ,MACrBA,IAAWY;AAAA,MACVZ;AAAA,MACA8B,KACW9B,EAAS,OAAjB,QACAhO,KAAYA,EAAS,QAAQgO,EAAS,MACnC,MACC,KAAKA,EAAS,KAAK;AAAA,QAClBoB;AAAA,QACA;AAAA,MACD,IAAG,OACRY;AAAA,IAChB,IACUH,EAAM,KAAK7B,CAAQ,IACvB;AAEJ,EAAAgC,IAAiB;AACjB,MAAIC,IAAwBF,MAAP,KAAmB,MAAMA,IAAY;AAC1D,MAAI3B,GAAYpO,CAAQ;AACtB,aAAS5I,IAAI,GAAGA,IAAI4I,EAAS,QAAQ5I;AACnC,MAAC2Y,IAAY/P,EAAS5I,CAAC,GACpBoX,IAAOyB,IAAiBZ,GAAcU,GAAW3Y,CAAC,GAClD4Y,KAAkBJ;AAAA,QACjBG;AAAA,QACAF;AAAA,QACAC;AAAA,QACAtB;AAAA,QACAR;AAAA,MACV;AAAA,WACa5W,IAAIkW,GAActN,CAAQ,GAAmB,OAAO5I,KAAtB;AACvC,SACE4I,IAAW5I,EAAE,KAAK4I,CAAQ,GAAG5I,IAAI,GACjC,EAAE2Y,IAAY/P,EAAS,KAAM,GAAE;AAG/B,MAAC+P,IAAYA,EAAU,OACpBvB,IAAOyB,IAAiBZ,GAAcU,GAAW3Y,GAAG,GACpD4Y,KAAkBJ;AAAA,QACjBG;AAAA,QACAF;AAAA,QACAC;AAAA,QACAtB;AAAA,QACAR;AAAA,MACV;AAAA,WACwBQ,MAAb,UAAmB;AAC1B,QAAmB,OAAOxO,EAAS,QAA/B;AACF,aAAO4P;AAAA,QACLJ,GAAgBxP,CAAQ;AAAA,QACxB6P;AAAA,QACAC;AAAA,QACAC;AAAA,QACA/B;AAAA,MACD;AACH,UAAA6B,IAAQ,OAAO7P,CAAQ,GACjB;AAAA,MACJ,qDACyB6P,MAAtB,oBACG,uBAAuB,OAAO,KAAK7P,CAAQ,EAAE,KAAK,IAAI,IAAI,MAC1D6P,KACJ;AAAA,IACH;AAAA,EACL;AACE,SAAOG;AACT;AACA,SAASE,GAAYlQ,GAAUmQ,GAAMtC,GAAS;AAC5C,MAAY7N,KAAR,KAAkB,QAAOA;AAC7B,MAAItB,IAAS,CAAE,GACb0R,IAAQ;AACV,SAAAR,GAAa5P,GAAUtB,GAAQ,IAAI,IAAI,SAAUuB,GAAO;AACtD,WAAOkQ,EAAK,KAAKtC,GAAS5N,GAAOmQ,GAAO;AAAA,EAC5C,CAAG,GACM1R;AACT;AACA,SAAS2R,GAAgBC,GAAS;AAChC,MAAWA,EAAQ,YAAf,IAAwB;AAC1B,QAAIC,IAAOD,EAAQ;AACnB,IAAAC,IAAOA,EAAM,GACbA,EAAK;AAAA,MACH,SAAUC,GAAc;AACtB,SAAUF,EAAQ,YAAd,KAAgCA,EAAQ,YAAf,QAC1BA,EAAQ,UAAU,GAAKA,EAAQ,UAAUE;AAAA,MAC7C;AAAA,MACD,SAAUb,GAAO;AACf,SAAUW,EAAQ,YAAd,KAAgCA,EAAQ,YAAf,QAC1BA,EAAQ,UAAU,GAAKA,EAAQ,UAAUX;AAAA,MACpD;AAAA,IACK,GACMW,EAAQ,YAAf,OAA4BA,EAAQ,UAAU,GAAKA,EAAQ,UAAUC;AAAA,EACzE;AACE,MAAUD,EAAQ,YAAd,EAAuB,QAAOA,EAAQ,QAAQ;AAClD,QAAMA,EAAQ;AAChB;AACA,IAAIG,KACa,OAAO,eAAtB,aACI,cACA,SAAUd,GAAO;AACf,MACe,OAAO,UAApB,YACe,OAAO,OAAO,cAA7B,YACA;AACA,QAAIe,IAAQ,IAAI,OAAO,WAAW,SAAS;AAAA,MACzC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,SACe,OAAOf,KAApB,YACSA,MAAT,QACa,OAAOA,EAAM,WAA1B,WACI,OAAOA,EAAM,OAAO,IACpB,OAAOA,CAAK;AAAA,MAClB,OAAOA;AAAA,IACnB,CAAW;AACD,QAAI,CAAC,OAAO,cAAce,CAAK,EAAG;AAAA,EAC5C,WACuB,OAAO,WAApB,YACe,OAAO,QAAQ,QAA9B,YACA;AACA,YAAQ,KAAK,qBAAqBf,CAAK;AACvC;AAAA,EACV;AACQ,UAAQ,MAAMA,CAAK;AACpB;AACP,SAASgB,KAAO;AAAA;AAChBlE,EAAiB,WAAW;AAAA,EAC1B,KAAKyD;AAAA,EACL,SAAS,SAAUlQ,GAAU4Q,GAAaC,GAAgB;AACxD,IAAAX;AAAA,MACElQ;AAAA,MACA,WAAY;AACV,QAAA4Q,EAAY,MAAM,MAAM,SAAS;AAAA,MAClC;AAAA,MACDC;AAAA,IACD;AAAA,EACF;AAAA,EACD,OAAO,SAAU7Q,GAAU;AACzB,QAAIjJ,IAAI;AACR,WAAAmZ,GAAYlQ,GAAU,WAAY;AAChC,MAAAjJ;AAAA,IACN,CAAK,GACMA;AAAA,EACR;AAAA,EACD,SAAS,SAAUiJ,GAAU;AAC3B,WACEkQ,GAAYlQ,GAAU,SAAUC,GAAO;AACrC,aAAOA;AAAA,IACf,CAAO,KAAK,CAAA;AAAA,EAET;AAAA,EACD,MAAM,SAAUD,GAAU;AACxB,QAAI,CAAC+O,GAAe/O,CAAQ;AAC1B,YAAM;AAAA,QACJ;AAAA,MACD;AACH,WAAOA;AAAA,EACX;AACA;AACAyM,EAAiB,YAAYkB;AAC7BlB,EAAiB,WAAWG;AAC5BH,EAAiB,WAAWK;AAC5BL,EAAiB,gBAAgByB;AACjCzB,EAAiB,aAAaI;AAC9BJ,EAAiB,WAAWS;AAC5BT,EAAiB,kEACf4B;AACF5B,EAAiB,MAAM,WAAY;AACjC,QAAM,MAAM,0DAA0D;AACxE;AACAA,EAAiB,QAAQ,SAAU9N,GAAI;AACrC,SAAO,WAAY;AACjB,WAAOA,EAAG,MAAM,MAAM,SAAS;AAAA,EAChC;AACH;AACA8N,EAAiB,eAAe,SAAU6C,GAASwB,GAAQ9Q,GAAU;AACnE,MAAasP,KAAT;AACF,UAAM;AAAA,MACJ,0DAA0DA,IAAU;AAAA,IACrE;AACH,MAAI1B,IAAQH,GAAO,IAAI6B,EAAQ,KAAK,GAClCpP,IAAMoP,EAAQ,KACdX,IAAQ;AACV,MAAYmC,KAAR;AACF,SAAK3H,KAAwB2H,EAAO,QAAlB,WAA0BnC,IAAQ,SACzCmC,EAAO,QAAlB,WAA0B5Q,IAAM,KAAK4Q,EAAO,MAC5CA;AACE,OAACxC,GAAe,KAAKwC,GAAQ3H,CAAQ,KACzBA,MAAV,SACaA,MAAb,YACeA,MAAf,cACWA,MAAV,SAAiC2H,EAAO,QAAlB,WACtBlD,EAAMzE,CAAQ,IAAI2H,EAAO3H,CAAQ;AACxC,MAAIA,IAAW,UAAU,SAAS;AAClC,MAAUA,MAAN,EAAgB,CAAAyE,EAAM,WAAW5N;AAAA,WAC5B,IAAImJ,GAAU;AACrB,aAAS4H,IAAa,MAAM5H,CAAQ,GAAG/R,IAAI,GAAGA,IAAI+R,GAAU/R;AAC1D,MAAA2Z,EAAW3Z,CAAC,IAAI,UAAUA,IAAI,CAAC;AACjC,IAAAwW,EAAM,WAAWmD;AAAA,EACrB;AACE,SAAOxC,GAAae,EAAQ,MAAMpP,GAAK,QAAQ,QAAQyO,GAAOf,CAAK;AACrE;AACAnB,EAAiB,gBAAgB,SAAUuE,GAAc;AACvD,SAAAA,IAAe;AAAA,IACb,UAAUhE;AAAA,IACV,eAAegE;AAAA,IACf,gBAAgBA;AAAA,IAChB,cAAc;AAAA,IACd,UAAU;AAAA,IACV,UAAU;AAAA,EACX,GACDA,EAAa,WAAWA,GACxBA,EAAa,WAAW;AAAA,IACtB,UAAUjE;AAAA,IACV,UAAUiE;AAAA,EACX,GACMA;AACT;AACAvE,EAAiB,gBAAgB,SAAU+B,GAAMsC,GAAQ9Q,GAAU;AACjE,MAAImJ,GACFyE,IAAQ,CAAE,GACV1N,IAAM;AACR,MAAY4Q,KAAR;AACF,SAAK3H,KAAwB2H,EAAO,QAAlB,WAA0B5Q,IAAM,KAAK4Q,EAAO,MAAMA;AAClE,MAAAxC,GAAe,KAAKwC,GAAQ3H,CAAQ,KACxBA,MAAV,SACaA,MAAb,YACeA,MAAf,eACCyE,EAAMzE,CAAQ,IAAI2H,EAAO3H,CAAQ;AACxC,MAAI8H,IAAiB,UAAU,SAAS;AACxC,MAAUA,MAAN,EAAsB,CAAArD,EAAM,WAAW5N;AAAA,WAClC,IAAIiR,GAAgB;AAC3B,aAASF,IAAa,MAAME,CAAc,GAAG7Z,IAAI,GAAGA,IAAI6Z,GAAgB7Z;AACtE,MAAA2Z,EAAW3Z,CAAC,IAAI,UAAUA,IAAI,CAAC;AACjC,IAAAwW,EAAM,WAAWmD;AAAA,EACrB;AACE,MAAIvC,KAAQA,EAAK;AACf,SAAKrF,KAAc8H,IAAiBzC,EAAK,cAAeyC;AACtD,MAAWrD,EAAMzE,CAAQ,MAAzB,WACGyE,EAAMzE,CAAQ,IAAI8H,EAAe9H,CAAQ;AAChD,SAAOoF,GAAaC,GAAMtO,GAAK,QAAQ,QAAQ,MAAM0N,CAAK;AAC5D;AACAnB,EAAiB,YAAY,WAAY;AACvC,SAAO,EAAE,SAAS,KAAM;AAC1B;AACAA,EAAiB,aAAa,SAAUyE,GAAQ;AAC9C,SAAO,EAAE,UAAUjE,IAAwB,QAAQiE,EAAQ;AAC7D;AACAzE,EAAiB,iBAAiBsC;AAClCtC,EAAiB,OAAO,SAAU8D,GAAM;AACtC,SAAO;AAAA,IACL,UAAUnD;AAAA,IACV,UAAU,EAAE,SAAS,IAAI,SAASmD,EAAM;AAAA,IACxC,OAAOF;AAAA,EACR;AACH;AACA5D,EAAiB,OAAO,SAAU+B,GAAM2C,GAAS;AAC/C,SAAO;AAAA,IACL,UAAUhE;AAAA,IACV,MAAMqB;AAAA,IACN,SAAoB2C,MAAX,SAAqB,OAAOA;AAAA,EACtC;AACH;AACA1E,EAAiB,kBAAkB,SAAU2E,GAAO;AAClD,MAAIC,IAAiBhD,EAAqB,GACxCiD,IAAoB,CAAE;AACxB,EAAAjD,EAAqB,IAAIiD;AACzB,MAAI;AACF,QAAIC,IAAcH,EAAO,GACvBI,IAA0BnD,EAAqB;AACjD,IAASmD,MAAT,QACEA,EAAwBF,GAAmBC,CAAW,GAC3C,OAAOA,KAApB,YACWA,MAAT,QACe,OAAOA,EAAY,QAAlC,cACAA,EAAY,KAAKZ,IAAMF,EAAiB;AAAA,EAC3C,SAAQd,GAAO;AACd,IAAAc,GAAkBd,CAAK;AAAA,EAC3B,UAAY;AACR,IAAAtB,EAAqB,IAAIgD;AAAA,EAC7B;AACA;AACA5E,EAAiB,2BAA2B,WAAY;AACtD,SAAO4B,EAAqB,EAAE,gBAAiB;AACjD;AACA5B,EAAiB,MAAM,SAAUgF,GAAQ;AACvC,SAAOpD,EAAqB,EAAE,IAAIoD,CAAM;AAC1C;AACAhF,EAAiB,iBAAiB,SAAUiF,GAAQrF,GAAcsF,GAAW;AAC3E,SAAOtD,EAAqB,EAAE,eAAeqD,GAAQrF,GAAcsF,CAAS;AAC9E;AACAlF,EAAiB,cAAc,SAAUuB,GAAU4D,GAAM;AACvD,SAAOvD,EAAqB,EAAE,YAAYL,GAAU4D,CAAI;AAC1D;AACAnF,EAAiB,aAAa,SAAUoF,GAAS;AAC/C,SAAOxD,EAAqB,EAAE,WAAWwD,CAAO;AAClD;AACApF,EAAiB,gBAAgB,WAAY;AAAE;AAC/CA,EAAiB,mBAAmB,SAAUhO,GAAOqT,GAAc;AACjE,SAAOzD,EAAqB,EAAE,iBAAiB5P,GAAOqT,CAAY;AACpE;AACArF,EAAiB,YAAY,SAAUsF,GAAQH,GAAM;AACnD,SAAOvD,EAAqB,EAAE,UAAU0D,GAAQH,CAAI;AACtD;AACAnF,EAAiB,QAAQ,WAAY;AACnC,SAAO4B,EAAqB,EAAE,MAAO;AACvC;AACA5B,EAAiB,sBAAsB,SAAUpQ,GAAK0V,GAAQH,GAAM;AAClE,SAAOvD,EAAqB,EAAE,oBAAoBhS,GAAK0V,GAAQH,CAAI;AACrE;AACAnF,EAAiB,qBAAqB,SAAUsF,GAAQH,GAAM;AAC5D,SAAOvD,EAAqB,EAAE,mBAAmB0D,GAAQH,CAAI;AAC/D;AACAnF,EAAiB,kBAAkB,SAAUsF,GAAQH,GAAM;AACzD,SAAOvD,EAAqB,EAAE,gBAAgB0D,GAAQH,CAAI;AAC5D;AACAnF,EAAiB,UAAU,SAAUsF,GAAQH,GAAM;AACjD,SAAOvD,EAAqB,EAAE,QAAQ0D,GAAQH,CAAI;AACpD;AACAnF,EAAiB,gBAAgB,SAAUuF,GAAaC,GAAS;AAC/D,SAAO5D,EAAqB,EAAE,cAAc2D,GAAaC,CAAO;AAClE;AACAxF,EAAiB,aAAa,SAAUwF,GAASC,GAAYC,GAAM;AACjE,SAAO9D,EAAqB,EAAE,WAAW4D,GAASC,GAAYC,CAAI;AACpE;AACA1F,EAAiB,SAAS,SAAUqF,GAAc;AAChD,SAAOzD,EAAqB,EAAE,OAAOyD,CAAY;AACnD;AACArF,EAAiB,WAAW,SAAUJ,GAAc;AAClD,SAAOgC,EAAqB,EAAE,SAAShC,CAAY;AACrD;AACAI,EAAiB,uBAAuB,SACtC2F,GACAC,GACAC,GACA;AACA,SAAOjE,EAAqB,EAAE;AAAA,IAC5B+D;AAAA,IACAC;AAAA,IACAC;AAAA,EACD;AACH;AACA7F,EAAiB,gBAAgB,WAAY;AAC3C,SAAO4B,EAAqB,EAAE,cAAe;AAC/C;AACA5B,EAAiB,UAAU;AAGzBD,GAAM,UAAUC;AAGlB,IAAI8F,KAAQ/F,GAAM,SACdgG,KAAU/G;AAEd,MAAMgH,KAAW,CAACxJ,MAAQA;AAC1B,SAASyJ,GAAStG,GAAKuG,IAAWF,IAAU;AAC1C,QAAMG,IAAQL,GAAM;AAAA,IAClBnG,EAAI;AAAA,IACJ,MAAMuG,EAASvG,EAAI,UAAU;AAAA,IAC7B,MAAMuG,EAASvG,EAAI,gBAAiB,CAAA;AAAA,EACrC;AACD,SAAAmG,GAAM,cAAcK,CAAK,GAClBA;AACT;AACA,MAAMC,KAAa,CAAClH,MAAgB;AAClC,QAAMS,IAAMoG,GAAQ,YAAY7G,CAAW,GACrCmH,IAAgB,CAACH,MAAaD,GAAStG,GAAKuG,CAAQ;AAC1D,gBAAO,OAAOG,GAAe1G,CAAG,GACzB0G;AACT,GACMf,KAAS,CAACpG,MAAgBA,IAAckH,GAAWlH,CAAW,IAAIkH;AAExEtG,GAAQ,SAASwF;AACjBxF,GAAQ,WAAWmG;AAAA,CAElB,SAAUK,GAAS;AAEpB,MAAIP,IAAU/G,IACVe,IAAQD;AAIZ,SAAO,KAAKiG,CAAO,EAAE,QAAQ,SAAU1Z,GAAG;AACzC,IAAIA,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAKia,GAASja,CAAC,KAAG,OAAO,eAAeia,GAASja,GAAG;AAAA,MAC3G,YAAY;AAAA,MACZ,KAAK,WAAY;AAAE,eAAO0Z,EAAQ1Z,CAAC;AAAA,MAAE;AAAA,IACvC,CAAE;AAAA,EACF,CAAC,GACD,OAAO,KAAK0T,CAAK,EAAE,QAAQ,SAAU1T,GAAG;AACvC,IAAIA,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAKia,GAASja,CAAC,KAAG,OAAO,eAAeia,GAASja,GAAG;AAAA,MAC3G,YAAY;AAAA,MACZ,KAAK,WAAY;AAAE,eAAO0T,EAAM1T,CAAC;AAAA,MAAE;AAAA,IACrC,CAAE;AAAA,EACF,CAAC;AACD,GAAE0S,EAAO;AAET,MAAMwH,KAAgC;AAAA,EAClC,uBAAuB,CAAE;AAAA,EACzB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,0BAA0B,CAAE;AAAA,EAC5B,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,0BAA0B,CAAE;AAAA,EAC5B,YAAY;AAAA,EACZ,2BAA2B,CAAE;AAAA,EAC7B,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,UAAU;AACd,GACMC,IAAmBzH,GAAQ,YAAY,CAAC0H,GAAKC,MAAQ;AACvD,QAAMC,IAAY;AAAA,IACd,4BAA4B,CAACC,MAASH,EAAI,CAACtH,OAAW;AAAA,MAClD,0BAA0B;AAAA,QACtB,GAAGA,EAAM;AAAA,QACT,CAACyH,EAAK,SAAS,GAAGA;AAAA,MACrB;AAAA,IACb,EAAU;AAAA,IACF,4BAA4B,CAACA,MAASH,EAAI,CAACtH,OAAW;AAAA,MAClD,0BAA0B;AAAA,QACtB,GAAGA,EAAM;AAAA,QACT,CAACyH,EAAK,SAAS,GAAGA;AAAA,MACrB;AAAA,IACb,EAAU;AAAA,IACF,wBAAwB,MAAM;AAC1B,YAAM,EAAE,MAAAC,EAAM,IAAGH,EAAK;AACtB,aAAOG;AAAA,IACV;AAAA,IACD,YAAY,CAACC,GAAqBC,IAAQ,OAAU;AAChD,YAAMF,IAAOC,GACPE,IAASD,IACT,IAAIjI,GAAG,EAAE,UAAUD,GAAE,MAAO,CAAA,IAC5B;AACN,MAAA4H,EAAI;AAAA,QACA,MAAAI;AAAA,QACA,QAAAG;AAAA,QACA,sBAAsBH,EAAK,OAAO,wBAAwB;AAAA,MAC1E,CAAa;AAAA,IACJ;AAAA,IACD,+BAA+B,CAACI,MAAcR,EAAI,CAACtH,MAAU;AACzD,YAAM+H,IAAe/H,EAAM;AAC3B,oBAAO+H,EAAaD,CAAS,GACtB;AAAA,QACH,0BAA0B;AAAA,UACtB,GAAGC;AAAA,QACN;AAAA,MACJ;AAAA,IACb,CAAS;AAAA,IACD,+BAA+B,CAACD,MAAcR,EAAI,CAACtH,MAAU;AACzD,YAAMgI,IAAgBhI,EAAM;AAC5B,oBAAOgI,EAAcF,CAAS,GACvB;AAAA,QACH,0BAA0B;AAAA,UACtB,GAAGE;AAAA,QACN;AAAA,MACJ;AAAA,IACb,CAAS;AAAA,IACD,iBAAiB,MAAM;AACnB,MAAAV,EAAI;AAAA,QACA,0BAA0B,CAAE;AAAA,MAC5C,CAAa;AAAA,IACJ;AAAA,IACD,QAAQ,YAAY;;AAChB,YAAMtH,IAAQuH,EAAK;AAEnB,WADAvX,IAAAgQ,EAAM,WAAN,QAAAhQ,EAAc,IAAI0P,GAAE,MAAM,sCAAsCM,EAAM,UAAU,MAC5E,CAACA,EAAM;AACP,cAAM,IAAI,MAAM,0CAA0C;AAE9D,UAAI,CAACA,EAAM,WAAW,QAAQ;AAC1B,SAAA9E,IAAA8E,EAAM,WAAN,QAAA9E,EAAc,IAAIwE,GAAE,MAAM,uDAC1B4H,EAAI;AAAA,UACA,2BAA2B,CAAE;AAAA,UAC7B,oBAAoB;AAAA,UACpB,mBAAmB;AAAA,UACnB,YAAY;AAAA,QAChC,CAAiB;AACD;AAAA,MAChB;AACY,MAAAA,EAAI,EAAE,oBAAoB,IAAM;AAChC,YAAMW,IAA4B,CAACC,GAAUC,MAAU;;AACnD,cAAMC,IAAqBF,EAAS,KAAK;AACzC,QAAAZ,EAAI,CAACtH,OACM;AAAA,UACH,oBAAoB;AAAA,UACpB,2BAA2BmI;AAAA,UAC3B,yBAAyBD,EAAS,KAAK,cAAc;AAAA,UACrD;AAAA;AAAA,YAEAA,EAAS,KAAK,UAAUlI,EAAM,qBACxBA,EAAM,oBACN;AAAA;AAAA,UACN,oBAAoBkI,EAAS,KAAK,SAAS;AAAA,QAC9C,EACJ,GACGE,KACAd,EAAI,EAAE,0BAA0Bc,GAAoB,IAExDpY,IAAAgQ,EAAM,WAAN,QAAAhQ,EAAc,IAAI0P,GAAE,OAAO,mBAAmB,KAAK,UAAUyI,CAAK,CAAC,MACnEjN,IAAA8E,EAAM,WAAN,QAAA9E,EAAc,IAAIwE,GAAE,OAAO,yBAAyB,KAAK,UAAU0I,CAAkB,CAAC;AAAA,MACzF,GACKC,IAAmB,CAACC,MAA0B;AAChD,QAAAhB,EAAI,EAAE,uBAAAgB,GAAuB;AAAA,MAChC;AACD,MAAAtI,EAAM,KAAK,SAAS;AAAA,QAChB,YAAYA,EAAM;AAAA,QAClB,MAAMA,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,QACZ,0BAA0BA,EAAM;AAAA,QAChC,0BAA0BA,EAAM;AAAA,QAChC,QAAQA,EAAM,uBACRA,EAAM,wBAAwBA,EAAM,oBAAoB,KACxD;AAAA,QACN,OAAOA,EAAM;AAAA,MAC7B,GAAeiI,GAA2BI,CAAgB;AAAA,IACjD;AAAA,IACD,sBAAsB,CAACE,MAAc;AACjC,MAAAjB,EAAI;AAAA,QACA,kBAAkBiB;AAAA,MAClC,CAAa;AAAA,IACJ;AAAA,IACD,eAAe,CAACC,MAASlB,EAAI,EAAE,YAAYkB,EAAI,CAAE;AAAA,IACjD,aAAa,CAAC5F,MAAS0E,EAAI,EAAE,UAAU1E,EAAI,CAAE;AAAA,IAC7C,eAAe,CAAC6F,MAAe;AAC3B,YAAM,EAAE,MAAAf,EAAM,IAAGH,EAAK;AACtB,MAAIG,KAAQe,EAAW,WAAW,KAC9Bf,EAAK,UAAU,iBAAiB;AAAA,QAC5B,MAAM;AAAA,MAC1B,CAAiB,GAKLJ,EAAI;AAAA,QACA,YAAAmB;AAAA,QACA,0BAA0B,CAAE;AAAA,QAC5B,GAAIA,EAAW,OAAO,WAAW,KAAK;AAAA,UAClC,YAAY;AAAA,UACZ,UAAU;AAAA,QAC9B;AAAA,MACA,CAAa;AAAA,IACJ;AAAA,IACD,8BAA8B,CAACN,MAAUb,EAAI,EAAE,2BAA2Ba,EAAK,CAAE;AAAA,IACjF,sBAAsB,OAAOO,MAAS;AAClC,MAAApB,EAAI,EAAE,mBAAmBoB,GAAM,GAC/B,MAAMlB,EAAU,OAAQ;AAAA,IAC3B;AAAA,IACD,yBAAyB,OAAOmB,MAAY;AACxC,MAAArB,EAAI,EAAE,sBAAsBqB,GAAS,GACrC,MAAMnB,EAAU,OAAQ;AAAA,IAC3B;AAAA,EACJ;AAKD,SAJoB;AAAA,IAChB,GAAGJ;AAAA,IACH,GAAGI;AAAA,EACN;AAEL,CAAC;AC9oDD,IAAIoB,KAAiB,OAAO,aAAe,MAAc,aAAa,OAAO,SAAW,MAAc,SAAS,OAAO,SAAW,MAAc,SAAS,OAAO,OAAS,MAAc,OAAO,CAAE,GAE3LC,KAAS,EAAC,SAAS,GAAE;AAEzB;AAAA,CAEC,SAAUC,GAAQ3B,GAAS;AAC5B,GAAC,SAAU4B,GAAQC,GAAS;AAC1B,IAAAF,EAAO,UAAUE,EAAS;AAAA,EAC5B,GAAGJ,IAAiB,WAAY;AAC9B,UAAM;AAAA,MACJ,SAAAK;AAAA,MACA,gBAAAC;AAAA,MACA,UAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,0BAAAC;AAAA,IACJ,IAAM;AACJ,QAAI;AAAA,MACF,QAAAC;AAAA,MACA,MAAAC;AAAA,MACA,QAAApD;AAAA,IACD,IAAG,QACA;AAAA,MACF,OAAAqD;AAAA,MACA,WAAAC;AAAA,IACJ,IAAM,OAAO,UAAY,OAAe;AACtC,IAAKH,MACHA,IAAS,SAAgBrb,GAAG;AAC1B,aAAOA;AAAA,IACR,IAEEsb,MACHA,IAAO,SAActb,GAAG;AACtB,aAAOA;AAAA,IACR,IAEEub,MACHA,IAAQ,SAAeE,GAAKC,GAAWC,GAAM;AAC3C,aAAOF,EAAI,MAAMC,GAAWC,CAAI;AAAA,IACjC,IAEEH,MACHA,IAAY,SAAmBI,GAAMD,GAAM;AACzC,aAAO,IAAIC,EAAK,GAAGD,CAAI;AAAA,IACxB;AAEH,UAAME,IAAeC,EAAQ,MAAM,UAAU,OAAO,GAC9CC,IAAmBD,EAAQ,MAAM,UAAU,WAAW,GACtDE,IAAWF,EAAQ,MAAM,UAAU,GAAG,GACtCG,IAAYH,EAAQ,MAAM,UAAU,IAAI,GACxCI,KAAcJ,EAAQ,MAAM,UAAU,MAAM,GAC5CK,KAAoBL,EAAQ,OAAO,UAAU,WAAW,GACxDM,IAAiBN,EAAQ,OAAO,UAAU,QAAQ,GAClDO,KAAcP,EAAQ,OAAO,UAAU,KAAK,GAC5CQ,KAAgBR,EAAQ,OAAO,UAAU,OAAO,GAChDS,KAAgBT,EAAQ,OAAO,UAAU,OAAO,GAChDU,KAAaV,EAAQ,OAAO,UAAU,IAAI,GAC1CW,KAAuBX,EAAQ,OAAO,UAAU,cAAc,GAC9DY,IAAaZ,EAAQ,OAAO,UAAU,IAAI,GAC1Ca,KAAkBC,GAAY,SAAS;AAO7C,aAASd,EAAQxF,GAAM;AACrB,aAAO,SAAUuG,GAAS;AACxB,iBAASC,IAAO,UAAU,QAAQnB,IAAO,IAAI,MAAMmB,IAAO,IAAIA,IAAO,IAAI,CAAC,GAAGC,IAAO,GAAGA,IAAOD,GAAMC;AAClG,UAAApB,EAAKoB,IAAO,CAAC,IAAI,UAAUA,CAAI;AAEjC,eAAOxB,EAAMjF,GAAMuG,GAASlB,CAAI;AAAA,MACjC;AAAA,IACL;AAOE,aAASiB,GAAYtG,GAAM;AACzB,aAAO,WAAY;AACjB,iBAAS0G,IAAQ,UAAU,QAAQrB,IAAO,IAAI,MAAMqB,CAAK,GAAGC,IAAQ,GAAGA,IAAQD,GAAOC;AACpF,UAAAtB,EAAKsB,CAAK,IAAI,UAAUA,CAAK;AAE/B,eAAOzB,EAAUlF,GAAMqF,CAAI;AAAA,MAC5B;AAAA,IACL;AASE,aAASuB,EAAS7D,GAAKrD,GAAO;AAC5B,UAAImH,IAAoB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIhB;AAC5F,MAAIlB,KAIFA,EAAe5B,GAAK,IAAI;AAE1B,UAAI3b,IAAIsY,EAAM;AACd,aAAOtY,OAAK;AACV,YAAI+X,IAAUO,EAAMtY,CAAC;AACrB,YAAI,OAAO+X,KAAY,UAAU;AAC/B,gBAAM2H,KAAYD,EAAkB1H,CAAO;AAC3C,UAAI2H,OAAc3H,MAEXyF,EAASlF,CAAK,MACjBA,EAAMtY,CAAC,IAAI0f,KAEb3H,IAAU2H;AAAA,QAEpB;AACM,QAAA/D,EAAI5D,CAAO,IAAI;AAAA,MACrB;AACI,aAAO4D;AAAA,IACX;AAOE,aAASgE,GAAWrH,GAAO;AACzB,eAAShL,IAAQ,GAAGA,IAAQgL,EAAM,QAAQhL;AAExC,QADwByR,GAAqBzG,GAAOhL,CAAK,MAEvDgL,EAAMhL,CAAK,IAAI;AAGnB,aAAOgL;AAAA,IACX;AAOE,aAASsH,GAAMnI,GAAQ;AACrB,YAAMoI,IAAYrF,EAAO,IAAI;AAC7B,iBAAW,CAACsF,GAAU5Y,CAAK,KAAKoW,EAAQ7F,CAAM;AAE5C,QADwBsH,GAAqBtH,GAAQqI,CAAQ,MAEvD,MAAM,QAAQ5Y,CAAK,IACrB2Y,EAAUC,CAAQ,IAAIH,GAAWzY,CAAK,IAC7BA,KAAS,OAAOA,KAAU,YAAYA,EAAM,gBAAgB,SACrE2Y,EAAUC,CAAQ,IAAIF,GAAM1Y,CAAK,IAEjC2Y,EAAUC,CAAQ,IAAI5Y;AAI5B,aAAO2Y;AAAA,IACX;AAQE,aAASE,GAAatI,GAAQ5M,GAAM;AAClC,aAAO4M,MAAW,QAAM;AACtB,cAAMuI,IAAOtC,EAAyBjG,GAAQ5M,CAAI;AAClD,YAAImV,GAAM;AACR,cAAIA,EAAK;AACP,mBAAO5B,EAAQ4B,EAAK,GAAG;AAEzB,cAAI,OAAOA,EAAK,SAAU;AACxB,mBAAO5B,EAAQ4B,EAAK,KAAK;AAAA,QAEnC;AACM,QAAAvI,IAASgG,EAAehG,CAAM;AAAA,MACpC;AACI,eAASwI,IAAgB;AACvB,eAAO;AAAA,MACb;AACI,aAAOA;AAAA,IACX;AAEE,UAAMC,KAASvC,EAAO,CAAC,KAAK,QAAQ,WAAW,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO,OAAO,OAAO,SAAS,cAAc,QAAQ,MAAM,UAAU,UAAU,WAAW,UAAU,QAAQ,QAAQ,OAAO,YAAY,WAAW,QAAQ,YAAY,MAAM,aAAa,OAAO,WAAW,OAAO,UAAU,OAAO,OAAO,MAAM,MAAM,WAAW,MAAM,YAAY,cAAc,UAAU,QAAQ,UAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,UAAU,UAAU,MAAM,QAAQ,KAAK,OAAO,SAAS,OAAO,OAAO,SAAS,UAAU,MAAM,QAAQ,OAAO,QAAQ,WAAW,QAAQ,YAAY,SAAS,OAAO,QAAQ,MAAM,YAAY,UAAU,UAAU,KAAK,WAAW,OAAO,YAAY,KAAK,MAAM,MAAM,QAAQ,KAAK,QAAQ,WAAW,UAAU,UAAU,SAAS,UAAU,UAAU,QAAQ,UAAU,UAAU,SAAS,OAAO,WAAW,OAAO,SAAS,SAAS,MAAM,YAAY,YAAY,SAAS,MAAM,SAAS,QAAQ,MAAM,SAAS,MAAM,KAAK,MAAM,OAAO,SAAS,KAAK,CAAC,GACz+BwC,KAAQxC,EAAO,CAAC,OAAO,KAAK,YAAY,eAAe,gBAAgB,gBAAgB,iBAAiB,oBAAoB,UAAU,YAAY,QAAQ,QAAQ,WAAW,UAAU,QAAQ,KAAK,SAAS,YAAY,SAAS,SAAS,QAAQ,kBAAkB,UAAU,QAAQ,YAAY,SAAS,QAAQ,WAAW,WAAW,YAAY,kBAAkB,QAAQ,QAAQ,SAAS,UAAU,UAAU,QAAQ,YAAY,SAAS,QAAQ,SAAS,QAAQ,OAAO,CAAC,GACndyC,KAAazC,EAAO,CAAC,WAAW,iBAAiB,uBAAuB,eAAe,oBAAoB,qBAAqB,qBAAqB,kBAAkB,gBAAgB,WAAW,WAAW,WAAW,WAAW,WAAW,kBAAkB,WAAW,WAAW,eAAe,gBAAgB,YAAY,gBAAgB,sBAAsB,eAAe,UAAU,cAAc,CAAC,GAK/Y0C,KAAgB1C,EAAO,CAAC,WAAW,iBAAiB,UAAU,WAAW,aAAa,oBAAoB,kBAAkB,iBAAiB,iBAAiB,iBAAiB,SAAS,aAAa,QAAQ,gBAAgB,aAAa,WAAW,iBAAiB,UAAU,OAAO,cAAc,WAAW,KAAK,CAAC,GACtT2C,KAAW3C,EAAO,CAAC,QAAQ,YAAY,UAAU,WAAW,SAAS,UAAU,MAAM,cAAc,iBAAiB,MAAM,MAAM,SAAS,WAAW,YAAY,SAAS,QAAQ,MAAM,UAAU,SAAS,UAAU,QAAQ,QAAQ,WAAW,UAAU,OAAO,SAAS,OAAO,UAAU,cAAc,aAAa,CAAC,GAGtT4C,KAAmB5C,EAAO,CAAC,WAAW,eAAe,cAAc,YAAY,aAAa,WAAW,WAAW,UAAU,UAAU,SAAS,aAAa,cAAc,kBAAkB,eAAe,MAAM,CAAC,GAClNtU,KAAOsU,EAAO,CAAC,OAAO,CAAC,GAEvB6C,KAAO7C,EAAO,CAAC,UAAU,UAAU,SAAS,OAAO,kBAAkB,gBAAgB,wBAAwB,YAAY,cAAc,WAAW,UAAU,WAAW,eAAe,eAAe,WAAW,QAAQ,SAAS,SAAS,SAAS,QAAQ,WAAW,YAAY,gBAAgB,UAAU,eAAe,YAAY,YAAY,WAAW,OAAO,YAAY,2BAA2B,yBAAyB,YAAY,aAAa,WAAW,gBAAgB,QAAQ,OAAO,WAAW,UAAU,UAAU,QAAQ,QAAQ,YAAY,MAAM,aAAa,aAAa,SAAS,QAAQ,SAAS,QAAQ,QAAQ,WAAW,QAAQ,OAAO,OAAO,aAAa,SAAS,UAAU,OAAO,aAAa,YAAY,SAAS,QAAQ,SAAS,WAAW,cAAc,UAAU,QAAQ,WAAW,WAAW,eAAe,eAAe,WAAW,iBAAiB,uBAAuB,UAAU,WAAW,WAAW,cAAc,YAAY,OAAO,YAAY,OAAO,YAAY,QAAQ,QAAQ,WAAW,cAAc,SAAS,YAAY,SAAS,QAAQ,SAAS,QAAQ,WAAW,SAAS,OAAO,UAAU,QAAQ,SAAS,WAAW,YAAY,SAAS,aAAa,QAAQ,UAAU,UAAU,SAAS,SAAS,QAAQ,SAAS,MAAM,CAAC,GACnuC8C,KAAM9C,EAAO,CAAC,iBAAiB,cAAc,YAAY,sBAAsB,aAAa,UAAU,iBAAiB,iBAAiB,WAAW,iBAAiB,kBAAkB,SAAS,QAAQ,MAAM,SAAS,QAAQ,iBAAiB,aAAa,aAAa,SAAS,uBAAuB,+BAA+B,iBAAiB,mBAAmB,MAAM,MAAM,KAAK,MAAM,MAAM,mBAAmB,aAAa,WAAW,WAAW,OAAO,YAAY,aAAa,OAAO,YAAY,QAAQ,gBAAgB,aAAa,UAAU,eAAe,eAAe,iBAAiB,eAAe,aAAa,oBAAoB,gBAAgB,cAAc,gBAAgB,eAAe,MAAM,MAAM,MAAM,MAAM,cAAc,YAAY,iBAAiB,qBAAqB,UAAU,QAAQ,MAAM,mBAAmB,MAAM,OAAO,aAAa,KAAK,MAAM,MAAM,MAAM,MAAM,WAAW,aAAa,cAAc,YAAY,QAAQ,gBAAgB,kBAAkB,gBAAgB,oBAAoB,kBAAkB,SAAS,cAAc,cAAc,gBAAgB,gBAAgB,eAAe,eAAe,oBAAoB,aAAa,OAAO,QAAQ,SAAS,UAAU,QAAQ,OAAO,QAAQ,cAAc,UAAU,YAAY,WAAW,SAAS,UAAU,eAAe,UAAU,YAAY,eAAe,QAAQ,cAAc,uBAAuB,oBAAoB,gBAAgB,UAAU,iBAAiB,uBAAuB,kBAAkB,KAAK,MAAM,MAAM,UAAU,QAAQ,QAAQ,eAAe,aAAa,WAAW,UAAU,UAAU,SAAS,QAAQ,mBAAmB,SAAS,oBAAoB,oBAAoB,gBAAgB,eAAe,gBAAgB,eAAe,cAAc,gBAAgB,oBAAoB,qBAAqB,kBAAkB,mBAAmB,qBAAqB,kBAAkB,UAAU,gBAAgB,SAAS,gBAAgB,kBAAkB,YAAY,eAAe,WAAW,WAAW,aAAa,oBAAoB,eAAe,mBAAmB,kBAAkB,cAAc,QAAQ,MAAM,MAAM,WAAW,UAAU,WAAW,cAAc,WAAW,cAAc,iBAAiB,iBAAiB,SAAS,gBAAgB,QAAQ,gBAAgB,oBAAoB,oBAAoB,KAAK,MAAM,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK,YAAY,CAAC,GACz0E+C,KAAS/C,EAAO,CAAC,UAAU,eAAe,SAAS,YAAY,SAAS,gBAAgB,eAAe,cAAc,cAAc,SAAS,OAAO,WAAW,gBAAgB,YAAY,SAAS,SAAS,UAAU,QAAQ,MAAM,WAAW,UAAU,iBAAiB,UAAU,UAAU,kBAAkB,aAAa,YAAY,eAAe,WAAW,WAAW,iBAAiB,YAAY,YAAY,QAAQ,YAAY,YAAY,cAAc,WAAW,UAAU,UAAU,eAAe,iBAAiB,wBAAwB,aAAa,aAAa,cAAc,YAAY,kBAAkB,kBAAkB,aAAa,WAAW,SAAS,OAAO,CAAC,GAC7pBgD,KAAMhD,EAAO,CAAC,cAAc,UAAU,eAAe,aAAa,aAAa,CAAC,GAGhFiD,KAAgBhD,EAAK,2BAA2B,GAChDiD,KAAWjD,EAAK,uBAAuB,GACvCkD,KAAclD,EAAK,eAAe,GAClCmD,KAAYnD,EAAK,8BAA8B,GAC/CoD,KAAYpD,EAAK,gBAAgB,GACjCqD,KAAiBrD;AAAA,MAAK;AAAA;AAAA,IAC3B,GACKsD,KAAoBtD,EAAK,uBAAuB,GAChDuD,KAAkBvD;AAAA,MAAK;AAAA;AAAA,IAC5B,GACKwD,KAAexD,EAAK,SAAS,GAC7ByD,KAAiBzD,EAAK,0BAA0B;AAEtD,QAAI0D,KAA2B,uBAAO,OAAO;AAAA,MAC3C,WAAW;AAAA,MACX,WAAWN;AAAA,MACX,iBAAiBG;AAAA,MACjB,gBAAgBE;AAAA,MAChB,WAAWN;AAAA,MACX,cAAcK;AAAA,MACd,UAAUP;AAAA,MACV,gBAAgBI;AAAA,MAChB,mBAAmBC;AAAA,MACnB,eAAeN;AAAA,MACf,aAAaE;AAAA,IACjB,CAAG;AAID,UAAMS,KAAY;AAAA,MAChB,SAAS;AAAA,MACT,WAAW;AAAA,MACX,MAAM;AAAA,MACN,cAAc;AAAA,MACd,iBAAiB;AAAA;AAAA,MAEjB,YAAY;AAAA;AAAA,MAEZ,wBAAwB;AAAA,MACxB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,UAAU;AAAA;AAAA,IACX,GACKC,KAAY,WAAqB;AACrC,aAAO,OAAO,SAAW,MAAc,OAAO;AAAA,IAC/C,GASKC,KAA4B,SAAmCC,GAAcC,GAAmB;AACpG,UAAI,OAAOD,KAAiB,YAAY,OAAOA,EAAa,gBAAiB;AAC3E,eAAO;AAKT,UAAIE,IAAS;AACb,YAAMC,IAAY;AAClB,MAAIF,KAAqBA,EAAkB,aAAaE,CAAS,MAC/DD,IAASD,EAAkB,aAAaE,CAAS;AAEnD,YAAMC,KAAa,eAAeF,IAAS,MAAMA,IAAS;AAC1D,UAAI;AACF,eAAOF,EAAa,aAAaI,IAAY;AAAA,UAC3C,WAAWtB,IAAM;AACf,mBAAOA;AAAA,UACR;AAAA,UACD,gBAAgBuB,IAAW;AACzB,mBAAOA;AAAA,UACjB;AAAA,QACA,CAAO;AAAA,MACF,QAAW;AAIV,uBAAQ,KAAK,yBAAyBD,KAAa,wBAAwB,GACpE;AAAA,MACb;AAAA,IACG,GACKE,KAAkB,WAA2B;AACjD,aAAO;AAAA,QACL,yBAAyB,CAAE;AAAA,QAC3B,uBAAuB,CAAE;AAAA,QACzB,wBAAwB,CAAE;AAAA,QAC1B,0BAA0B,CAAE;AAAA,QAC5B,wBAAwB,CAAE;AAAA,QAC1B,yBAAyB,CAAE;AAAA,QAC3B,uBAAuB,CAAE;AAAA,QACzB,qBAAqB,CAAE;AAAA,QACvB,wBAAwB,CAAA;AAAA,MACzB;AAAA,IACF;AACD,aAASC,KAAkB;AACzB,UAAIC,IAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAIV,GAAW;AAC5F,YAAMW,IAAY,CAAAC,MAAQH,GAAgBG,CAAI;AAG9C,UAFAD,EAAU,UAAU,SACpBA,EAAU,UAAU,CAAE,GAClB,CAACD,KAAU,CAACA,EAAO,YAAYA,EAAO,SAAS,aAAaX,GAAU,YAAY,CAACW,EAAO;AAG5F,eAAAC,EAAU,cAAc,IACjBA;AAET,UAAI;AAAA,QACF,UAAAE;AAAA,MACN,IAAQH;AACJ,YAAMI,IAAmBD,GACnBE,IAAgBD,EAAiB,eACjC;AAAA,QACJ,kBAAAE;AAAA,QACA,qBAAAC;AAAA,QACA,MAAAC;AAAA,QACA,SAAAC;AAAA,QACA,YAAAC;AAAA,QACA,cAAAC,KAAeX,EAAO,gBAAgBA,EAAO;AAAA,QAC7C,iBAAAY;AAAA,QACA,WAAAC;AAAA,QACA,cAAArB;AAAA,MACN,IAAQQ,GACEc,KAAmBL,GAAQ,WAC3BM,KAAYlD,GAAaiD,IAAkB,WAAW,GACtDE,KAASnD,GAAaiD,IAAkB,QAAQ,GAChDG,KAAiBpD,GAAaiD,IAAkB,aAAa,GAC7DI,KAAgBrD,GAAaiD,IAAkB,YAAY,GAC3DK,KAAgBtD,GAAaiD,IAAkB,YAAY;AAOjE,UAAI,OAAOP,MAAwB,YAAY;AAC7C,cAAMa,IAAWjB,EAAS,cAAc,UAAU;AAClD,QAAIiB,EAAS,WAAWA,EAAS,QAAQ,kBACvCjB,IAAWiB,EAAS,QAAQ;AAAA,MAEpC;AACI,UAAIC,GACAC,KAAY;AAChB,YAAM;AAAA,QACJ,gBAAAC;AAAA,QACA,oBAAAC;AAAA,QACA,wBAAAC;AAAA,QACA,sBAAAC;AAAA,MACN,IAAQvB,GACE;AAAA,QACJ,YAAAwB;AAAA,MACN,IAAQvB;AACJ,UAAIwB,IAAQ9B,GAAiB;AAI7B,MAAAG,EAAU,cAAc,OAAO7E,KAAY,cAAc,OAAO+F,MAAkB,cAAcI,MAAkBA,GAAe,uBAAuB;AACxJ,YAAM;AAAA,QACJ,eAAA7C;AAAA,QACA,UAAAC;AAAA,QACA,aAAAC;AAAA,QACA,WAAAC;AAAA,QACA,WAAAC;AAAA,QACA,mBAAAE;AAAA,QACA,iBAAAC;AAAA,QACA,gBAAAE;AAAA,MACN,IAAQC;AACJ,UAAI;AAAA,QACF,gBAAgByC;AAAA,MACtB,IAAQzC,IAMA0C,IAAe;AACnB,YAAMC,KAAuBzE,EAAS,CAAE,GAAE,CAAC,GAAGU,IAAQ,GAAGC,IAAO,GAAGC,IAAY,GAAGE,IAAU,GAAGjX,EAAI,CAAC;AAEpG,UAAI6a,IAAe;AACnB,YAAMC,KAAuB3E,EAAS,CAAE,GAAE,CAAC,GAAGgB,IAAM,GAAGC,IAAK,GAAGC,IAAQ,GAAGC,EAAG,CAAC;AAO9E,UAAIyD,IAA0B,OAAO,KAAK5J,EAAO,MAAM;AAAA,QACrD,cAAc;AAAA,UACZ,UAAU;AAAA,UACV,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,OAAO;AAAA,QACR;AAAA,QACD,oBAAoB;AAAA,UAClB,UAAU;AAAA,UACV,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,OAAO;AAAA,QACR;AAAA,QACD,gCAAgC;AAAA,UAC9B,UAAU;AAAA,UACV,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,OAAO;AAAA,QACf;AAAA,MACA,CAAK,CAAC,GAEE6J,KAAc,MAEdC,KAAc,MAEdC,KAAkB,IAElBC,KAAkB,IAElBC,KAA0B,IAG1BC,KAA2B,IAI3BC,KAAqB,IAIrBC,KAAe,IAEfC,KAAiB,IAEjBC,KAAa,IAGbC,KAAa,IAKbC,KAAa,IAGbC,KAAsB,IAGtBC,KAAsB,IAItBC,KAAe,IAcfC,KAAuB;AAC3B,YAAMC,KAA8B;AAEpC,UAAIC,KAAe,IAGfC,KAAW,IAEXC,KAAe,CAAE,GAEjBC,KAAkB;AACtB,YAAMC,KAA0BlG,EAAS,CAAE,GAAE,CAAC,kBAAkB,SAAS,YAAY,QAAQ,iBAAiB,QAAQ,UAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,SAAS,WAAW,YAAY,YAAY,aAAa,UAAU,SAAS,OAAO,YAAY,SAAS,SAAS,SAAS,KAAK,CAAC;AAEhS,UAAImG,KAAgB;AACpB,YAAMC,KAAwBpG,EAAS,CAAE,GAAE,CAAC,SAAS,SAAS,OAAO,UAAU,SAAS,OAAO,CAAC;AAEhG,UAAIqG,KAAsB;AAC1B,YAAMC,KAA8BtG,EAAS,IAAI,CAAC,OAAO,SAAS,OAAO,MAAM,SAAS,QAAQ,WAAW,eAAe,QAAQ,WAAW,SAAS,SAAS,SAAS,OAAO,CAAC,GAC1KuG,KAAmB,sCACnBC,KAAgB,8BAChBC,KAAiB;AAEvB,UAAIxiB,KAAYwiB,IACZC,KAAiB,IAEjBC,KAAqB;AACzB,YAAMC,KAA6B5G,EAAS,IAAI,CAACuG,IAAkBC,IAAeC,EAAc,GAAGvH,CAAc;AACjH,UAAI2H,KAAiC7G,EAAS,CAAA,GAAI,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,CAAC,GAC/E8G,KAA0B9G,EAAS,IAAI,CAAC,gBAAgB,CAAC;AAK7D,YAAM+G,KAA+B/G,EAAS,CAAA,GAAI,CAAC,SAAS,SAAS,QAAQ,KAAK,QAAQ,CAAC;AAE3F,UAAIgH,KAAoB;AACxB,YAAMC,KAA+B,CAAC,yBAAyB,WAAW,GACpEC,KAA4B;AAClC,UAAIjH,IAAoB,MAEpBkH,KAAS;AAGb,YAAMC,KAAcvE,EAAS,cAAc,MAAM,GAC3CwE,KAAoB,SAA2BC,GAAW;AAC9D,eAAOA,aAAqB,UAAUA,aAAqB;AAAA,MAC5D,GAOKC,KAAe,WAAwB;AAC3C,YAAIC,IAAM,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE;AAChF,YAAI,EAAAL,MAAUA,OAAWK,IAsHzB;AAAA,eAlHI,CAACA,KAAO,OAAOA,KAAQ,cACzBA,IAAM,CAAE,IAGVA,IAAMpH,GAAMoH,CAAG,GACfR;AAAA,UAEAC,GAA6B,QAAQO,EAAI,iBAAiB,MAAM,KAAKN,KAA4BM,EAAI,mBAErGvH,IAAoB+G,OAAsB,0BAA0B9H,IAAiBD,IAErFuF,IAAejF,GAAqBiI,GAAK,cAAc,IAAIxH,EAAS,CAAE,GAAEwH,EAAI,cAAcvH,CAAiB,IAAIwE,IAC/GC,IAAenF,GAAqBiI,GAAK,cAAc,IAAIxH,EAAS,CAAE,GAAEwH,EAAI,cAAcvH,CAAiB,IAAI0E,IAC/GgC,KAAqBpH,GAAqBiI,GAAK,oBAAoB,IAAIxH,EAAS,CAAE,GAAEwH,EAAI,oBAAoBtI,CAAc,IAAI0H,IAC9HP,KAAsB9G,GAAqBiI,GAAK,mBAAmB,IAAIxH,EAASI,GAAMkG,EAA2B,GAAGkB,EAAI,mBAAmBvH,CAAiB,IAAIqG,IAChKH,KAAgB5G,GAAqBiI,GAAK,mBAAmB,IAAIxH,EAASI,GAAMgG,EAAqB,GAAGoB,EAAI,mBAAmBvH,CAAiB,IAAImG,IACpJH,KAAkB1G,GAAqBiI,GAAK,iBAAiB,IAAIxH,EAAS,CAAE,GAAEwH,EAAI,iBAAiBvH,CAAiB,IAAIiG,IACxHrB,KAActF,GAAqBiI,GAAK,aAAa,IAAIxH,EAAS,CAAE,GAAEwH,EAAI,aAAavH,CAAiB,IAAI,CAAE,GAC9G6E,KAAcvF,GAAqBiI,GAAK,aAAa,IAAIxH,EAAS,CAAE,GAAEwH,EAAI,aAAavH,CAAiB,IAAI,CAAE,GAC9G+F,KAAezG,GAAqBiI,GAAK,cAAc,IAAIA,EAAI,eAAe,IAC9EzC,KAAkByC,EAAI,oBAAoB,IAC1CxC,KAAkBwC,EAAI,oBAAoB,IAC1CvC,KAA0BuC,EAAI,2BAA2B,IACzDtC,KAA2BsC,EAAI,6BAA6B,IAC5DrC,KAAqBqC,EAAI,sBAAsB,IAC/CpC,KAAeoC,EAAI,iBAAiB,IACpCnC,KAAiBmC,EAAI,kBAAkB,IACvChC,KAAagC,EAAI,cAAc,IAC/B/B,KAAsB+B,EAAI,uBAAuB,IACjD9B,KAAsB8B,EAAI,uBAAuB,IACjDjC,KAAaiC,EAAI,cAAc,IAC/B7B,KAAe6B,EAAI,iBAAiB,IACpC5B,KAAuB4B,EAAI,wBAAwB,IACnD1B,KAAe0B,EAAI,iBAAiB,IACpCzB,KAAWyB,EAAI,YAAY,IAC3BjD,KAAmBiD,EAAI,sBAAsB/F,IAC7Cxd,KAAYujB,EAAI,aAAaf,IAC7BI,KAAiCW,EAAI,kCAAkCX,IACvEC,KAA0BU,EAAI,2BAA2BV,IACzDlC,IAA0B4C,EAAI,2BAA2B,CAAE,GACvDA,EAAI,2BAA2BH,GAAkBG,EAAI,wBAAwB,YAAY,MAC3F5C,EAAwB,eAAe4C,EAAI,wBAAwB,eAEjEA,EAAI,2BAA2BH,GAAkBG,EAAI,wBAAwB,kBAAkB,MACjG5C,EAAwB,qBAAqB4C,EAAI,wBAAwB,qBAEvEA,EAAI,2BAA2B,OAAOA,EAAI,wBAAwB,kCAAmC,cACvG5C,EAAwB,iCAAiC4C,EAAI,wBAAwB,iCAEnFrC,OACFH,KAAkB,KAEhBS,OACFD,KAAa,KAGXQ,OACFxB,IAAexE,EAAS,CAAE,GAAEnW,EAAI,GAChC6a,IAAe,CAAE,GACbsB,GAAa,SAAS,OACxBhG,EAASwE,GAAc9D,EAAM,GAC7BV,EAAS0E,GAAc1D,EAAI,IAEzBgF,GAAa,QAAQ,OACvBhG,EAASwE,GAAc7D,EAAK,GAC5BX,EAAS0E,GAAczD,EAAG,GAC1BjB,EAAS0E,GAAcvD,EAAG,IAExB6E,GAAa,eAAe,OAC9BhG,EAASwE,GAAc5D,EAAU,GACjCZ,EAAS0E,GAAczD,EAAG,GAC1BjB,EAAS0E,GAAcvD,EAAG,IAExB6E,GAAa,WAAW,OAC1BhG,EAASwE,GAAc1D,EAAQ,GAC/Bd,EAAS0E,GAAcxD,EAAM,GAC7BlB,EAAS0E,GAAcvD,EAAG,KAI1BqG,EAAI,aACFhD,MAAiBC,OACnBD,IAAepE,GAAMoE,CAAY,IAEnCxE,EAASwE,GAAcgD,EAAI,UAAUvH,CAAiB,IAEpDuH,EAAI,aACF9C,MAAiBC,OACnBD,IAAetE,GAAMsE,CAAY,IAEnC1E,EAAS0E,GAAc8C,EAAI,UAAUvH,CAAiB,IAEpDuH,EAAI,qBACNxH,EAASqG,IAAqBmB,EAAI,mBAAmBvH,CAAiB,GAEpEuH,EAAI,oBACFvB,OAAoBC,OACtBD,KAAkB7F,GAAM6F,EAAe,IAEzCjG,EAASiG,IAAiBuB,EAAI,iBAAiBvH,CAAiB,IAG9D6F,OACFtB,EAAa,OAAO,IAAI,KAGtBa,MACFrF,EAASwE,GAAc,CAAC,QAAQ,QAAQ,MAAM,CAAC,GAG7CA,EAAa,UACfxE,EAASwE,GAAc,CAAC,OAAO,CAAC,GAChC,OAAOK,GAAY,QAEjB2C,EAAI,sBAAsB;AAC5B,gBAAI,OAAOA,EAAI,qBAAqB,cAAe;AACjD,oBAAM/H,GAAgB,6EAA6E;AAErG,gBAAI,OAAO+H,EAAI,qBAAqB,mBAAoB;AACtD,oBAAM/H,GAAgB,kFAAkF;AAG1G,YAAAsE,IAAqByD,EAAI,sBAEzBxD,KAAYD,EAAmB,WAAW,EAAE;AAAA,UACpD;AAEQ,YAAIA,MAAuB,WACzBA,IAAqB9B,GAA0BC,IAAca,CAAa,IAGxEgB,MAAuB,QAAQ,OAAOC,MAAc,aACtDA,KAAYD,EAAmB,WAAW,EAAE;AAKhD,UAAI5F,KACFA,EAAOqJ,CAAG,GAEZL,KAASK;AAAA;AAAA,MACV,GAIKC,KAAezH,EAAS,IAAI,CAAC,GAAGW,IAAO,GAAGC,IAAY,GAAGC,EAAa,CAAC,GACvE6G,KAAkB1H,EAAS,CAAE,GAAE,CAAC,GAAGc,IAAU,GAAGC,EAAgB,CAAC,GAOjE4G,KAAuB,SAA8BpP,GAAS;AAClE,YAAI9I,IAASoU,GAActL,CAAO;AAGlC,SAAI,CAAC9I,KAAU,CAACA,EAAO,aACrBA,IAAS;AAAA,UACP,cAAcxL;AAAA,UACd,SAAS;AAAA,QACV;AAEH,cAAM6E,IAAUmW,GAAkB1G,EAAQ,OAAO,GAC3CqP,IAAgB3I,GAAkBxP,EAAO,OAAO;AACtD,eAAKkX,GAAmBpO,EAAQ,YAAY,IAGxCA,EAAQ,iBAAiBiO,KAIvB/W,EAAO,iBAAiBgX,KACnB3d,MAAY,QAKjB2G,EAAO,iBAAiB8W,KACnBzd,MAAY,UAAU8e,MAAkB,oBAAoBf,GAA+Be,CAAa,KAI1G,EAAQH,GAAa3e,CAAO,IAEjCyP,EAAQ,iBAAiBgO,KAIvB9W,EAAO,iBAAiBgX,KACnB3d,MAAY,SAIjB2G,EAAO,iBAAiB+W,KACnB1d,MAAY,UAAUge,GAAwBc,CAAa,IAI7D,EAAQF,GAAgB5e,CAAO,IAEpCyP,EAAQ,iBAAiBkO,KAIvBhX,EAAO,iBAAiB+W,MAAiB,CAACM,GAAwBc,CAAa,KAG/EnY,EAAO,iBAAiB8W,MAAoB,CAACM,GAA+Be,CAAa,IACpF,KAIF,CAACF,GAAgB5e,CAAO,MAAMie,GAA6Bje,CAAO,KAAK,CAAC2e,GAAa3e,CAAO,KAGjG,GAAAke,OAAsB,2BAA2BL,GAAmBpO,EAAQ,YAAY,KAlDnF;AAAA,MA0DV,GAMKsP,KAAe,SAAsBrf,GAAM;AAC/C,QAAAuW,EAAU4D,EAAU,SAAS;AAAA,UAC3B,SAASna;AAAA,QACjB,CAAO;AACD,YAAI;AAEF,UAAAqb,GAAcrb,CAAI,EAAE,YAAYA,CAAI;AAAA,QACrC,QAAW;AACV,UAAAkb,GAAOlb,CAAI;AAAA,QACnB;AAAA,MACK,GAOKsf,KAAmB,SAA0BvjB,GAAMgU,GAAS;AAChE,YAAI;AACF,UAAAwG,EAAU4D,EAAU,SAAS;AAAA,YAC3B,WAAWpK,EAAQ,iBAAiBhU,CAAI;AAAA,YACxC,MAAMgU;AAAA,UAChB,CAAS;AAAA,QACF,QAAW;AACV,UAAAwG,EAAU4D,EAAU,SAAS;AAAA,YAC3B,WAAW;AAAA,YACX,MAAMpK;AAAA,UAChB,CAAS;AAAA,QACT;AAGM,YAFAA,EAAQ,gBAAgBhU,CAAI,GAExBA,MAAS;AACX,cAAIihB,MAAcC;AAChB,gBAAI;AACF,cAAAoC,GAAatP,CAAO;AAAA,YACrB,QAAW;AAAA,YAAA;AAAA;AAEZ,gBAAI;AACF,cAAAA,EAAQ,aAAahU,GAAM,EAAE;AAAA,YAC9B,QAAW;AAAA,YAAA;AAAA,MAGjB,GAOKwjB,KAAgB,SAAuBC,GAAO;AAElD,YAAIjiB,IAAM,MACNkiB,IAAoB;AACxB,YAAI1C;AACF,UAAAyC,IAAQ,sBAAsBA;AAAA,aACzB;AAEL,gBAAME,IAAU/I,GAAY6I,GAAO,aAAa;AAChD,UAAAC,IAAoBC,KAAWA,EAAQ,CAAC;AAAA,QAChD;AACM,QAAIlB,OAAsB,2BAA2B/iB,OAAcwiB,OAEjEuB,IAAQ,mEAAmEA,IAAQ;AAErF,cAAMG,IAAepE,IAAqBA,EAAmB,WAAWiE,CAAK,IAAIA;AAKjF,YAAI/jB,OAAcwiB;AAChB,cAAI;AACF,YAAA1gB,IAAM,IAAIwd,GAAS,EAAG,gBAAgB4E,GAAcnB,EAAiB;AAAA,UACtE,QAAW;AAAA,UAAA;AAGd,YAAI,CAACjhB,KAAO,CAACA,EAAI,iBAAiB;AAChC,UAAAA,IAAMke,GAAe,eAAehgB,IAAW,YAAY,IAAI;AAC/D,cAAI;AACF,YAAA8B,EAAI,gBAAgB,YAAY2gB,KAAiB1C,KAAYmE;AAAA,UAC9D,QAAW;AAAA,UAEpB;AAAA,QACA;AACM,cAAMC,IAAOriB,EAAI,QAAQA,EAAI;AAK7B,eAJIiiB,KAASC,KACXG,EAAK,aAAavF,EAAS,eAAeoF,CAAiB,GAAGG,EAAK,WAAW,CAAC,KAAK,IAAI,GAGtFnkB,OAAcwiB,KACTrC,GAAqB,KAAKre,GAAKsf,KAAiB,SAAS,MAAM,EAAE,CAAC,IAEpEA,KAAiBtf,EAAI,kBAAkBqiB;AAAA,MAC/C,GAOKC,KAAsB,SAA6BzF,GAAM;AAC7D,eAAOsB,GAAmB;AAAA,UAAKtB,EAAK,iBAAiBA;AAAA,UAAMA;AAAA;AAAA,UAE3DQ,GAAW,eAAeA,GAAW,eAAeA,GAAW,YAAYA,GAAW,8BAA8BA,GAAW;AAAA,UAAoB;AAAA,QAAI;AAAA,MACxJ,GAOKkF,KAAe,SAAsB/P,GAAS;AAClD,eAAOA,aAAmB+K,OAAoB,OAAO/K,EAAQ,YAAa,YAAY,OAAOA,EAAQ,eAAgB,YAAY,OAAOA,EAAQ,eAAgB,cAAc,EAAEA,EAAQ,sBAAsB8K,OAAiB,OAAO9K,EAAQ,mBAAoB,cAAc,OAAOA,EAAQ,gBAAiB,cAAc,OAAOA,EAAQ,gBAAiB,YAAY,OAAOA,EAAQ,gBAAiB,cAAc,OAAOA,EAAQ,iBAAkB;AAAA,MAC1b,GAOKgQ,KAAU,SAAiB7gB,GAAO;AACtC,eAAO,OAAOwb,MAAS,cAAcxb,aAAiBwb;AAAA,MACvD;AACD,eAASsF,GAAclE,GAAOmE,GAAanM,GAAM;AAC/C,QAAAqC,EAAa2F,GAAO,CAAAoE,MAAQ;AAC1B,UAAAA,EAAK,KAAK/F,GAAW8F,GAAanM,GAAM6K,EAAM;AAAA,QACtD,CAAO;AAAA,MACP;AAUI,YAAMwB,KAAoB,SAA2BF,GAAa;AAChE,YAAIG,IAAU;AAId,YAFAJ,GAAclE,EAAM,wBAAwBmE,GAAa,IAAI,GAEzDH,GAAaG,CAAW;AAC1B,iBAAAZ,GAAaY,CAAW,GACjB;AAGT,cAAM3f,IAAUmX,EAAkBwI,EAAY,QAAQ;AAiBtD,YAfAD,GAAclE,EAAM,qBAAqBmE,GAAa;AAAA,UACpD,SAAA3f;AAAA,UACA,aAAa0b;AAAA,QACrB,CAAO,GAEGiE,EAAY,cAAe,KAAI,CAACF,GAAQE,EAAY,iBAAiB,KAAKjJ,EAAW,WAAWiJ,EAAY,SAAS,KAAKjJ,EAAW,WAAWiJ,EAAY,WAAW,KAKvKA,EAAY,aAAa1G,GAAU,0BAKnCqD,MAAgBqD,EAAY,aAAa1G,GAAU,WAAWvC,EAAW,WAAWiJ,EAAY,IAAI;AACtG,iBAAAZ,GAAaY,CAAW,GACjB;AAGT,YAAI,CAACjE,EAAa1b,CAAO,KAAK+b,GAAY/b,CAAO,GAAG;AAElD,cAAI,CAAC+b,GAAY/b,CAAO,KAAK+f,GAAsB/f,CAAO,MACpD8b,EAAwB,wBAAwB,UAAUpF,EAAWoF,EAAwB,cAAc9b,CAAO,KAGlH8b,EAAwB,wBAAwB,YAAYA,EAAwB,aAAa9b,CAAO;AAC1G,mBAAO;AAIX,cAAIgd,MAAgB,CAACG,GAAgBnd,CAAO,GAAG;AAC7C,kBAAMggB,IAAajF,GAAc4E,CAAW,KAAKA,EAAY,YACvDzgB,IAAa4b,GAAc6E,CAAW,KAAKA,EAAY;AAC7D,gBAAIzgB,KAAc8gB,GAAY;AAC5B,oBAAMC,IAAa/gB,EAAW;AAC9B,uBAAS3H,KAAI0oB,IAAa,GAAG1oB,MAAK,GAAG,EAAEA,IAAG;AACxC,sBAAM2oB,KAAavF,GAAUzb,EAAW3H,EAAC,GAAG,EAAI;AAChD,gBAAA2oB,GAAW,kBAAkBP,EAAY,kBAAkB,KAAK,GAChEK,EAAW,aAAaE,IAAYrF,GAAe8E,CAAW,CAAC;AAAA,cAC7E;AAAA,YACA;AAAA,UACA;AACQ,iBAAAZ,GAAaY,CAAW,GACjB;AAAA,QACf;AAOM,eALIA,aAAuBtF,MAAW,CAACwE,GAAqBc,CAAW,MAKlE3f,MAAY,cAAcA,MAAY,aAAaA,MAAY,eAAe0W,EAAW,+BAA+BiJ,EAAY,SAAS,KAChJZ,GAAaY,CAAW,GACjB,OAGLtD,MAAsBsD,EAAY,aAAa1G,GAAU,SAE3D6G,IAAUH,EAAY,aACtB9J,EAAa,CAACyC,IAAeC,IAAUC,EAAW,GAAG,CAAA2H,MAAQ;AAC3D,UAAAL,IAAUxJ,GAAcwJ,GAASK,GAAM,GAAG;AAAA,QACpD,CAAS,GACGR,EAAY,gBAAgBG,MAC9B7J,EAAU4D,EAAU,SAAS;AAAA,UAC3B,SAAS8F,EAAY,UAAS;AAAA,QAC1C,CAAW,GACDA,EAAY,cAAcG,KAI9BJ,GAAclE,EAAM,uBAAuBmE,GAAa,IAAI,GACrD;AAAA,MACR,GAUKS,KAAoB,SAA2BC,GAAOC,GAAQ1hB,GAAO;AAEzE,YAAIie,OAAiByD,MAAW,QAAQA,MAAW,YAAY1hB,KAASmb,KAAYnb,KAAS0f;AAC3F,iBAAO;AAMT,YAAI,EAAApC,MAAmB,CAACF,GAAYsE,CAAM,KAAK5J,EAAW+B,IAAW6H,CAAM;AAAU,cAAI,EAAArE,MAAmBvF,EAAWgC,IAAW4H,CAAM;AAAU,gBAAI,CAAC1E,EAAa0E,CAAM,KAAKtE,GAAYsE,CAAM;AAC/L;AAAA;AAAA;AAAA;AAAA,gBAIA,EAAAP,GAAsBM,CAAK,MAAMvE,EAAwB,wBAAwB,UAAUpF,EAAWoF,EAAwB,cAAcuE,CAAK,KAAKvE,EAAwB,wBAAwB,YAAYA,EAAwB,aAAauE,CAAK,OAAOvE,EAAwB,8BAA8B,UAAUpF,EAAWoF,EAAwB,oBAAoBwE,CAAM,KAAKxE,EAAwB,8BAA8B,YAAYA,EAAwB,mBAAmBwE,CAAM;AAAA;AAAA,gBAGxfA,MAAW,QAAQxE,EAAwB,mCAAmCA,EAAwB,wBAAwB,UAAUpF,EAAWoF,EAAwB,cAAcld,CAAK,KAAKkd,EAAwB,wBAAwB,YAAYA,EAAwB,aAAald,CAAK;AAAA,eACvS,QAAO;AAAA,uBAGA,CAAA2e,GAAoB+C,CAAM;AAAU,kBAAI,CAAA5J,EAAW+E,IAAkBnF,GAAc1X,GAAOia,IAAiB,EAAE,CAAC;AAAU,oBAAK,GAAAyH,MAAW,SAASA,MAAW,gBAAgBA,MAAW,WAAWD,MAAU,YAAY9J,GAAc3X,GAAO,OAAO,MAAM,KAAKye,GAAcgD,CAAK;AAAU,sBAAI,EAAAlE,MAA2B,CAACzF,EAAWkC,IAAmBtC,GAAc1X,GAAOia,IAAiB,EAAE,CAAC;AAAU,wBAAIja;AAC1Z,6BAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAET,eAAO;AAAA,MACR,GASKmhB,KAAwB,SAA+B/f,GAAS;AACpE,eAAOA,MAAY,oBAAoBqW,GAAYrW,GAAS+Y,EAAc;AAAA,MAC3E,GAWKwH,KAAsB,SAA6BZ,GAAa;AAEpE,QAAAD,GAAclE,EAAM,0BAA0BmE,GAAa,IAAI;AAC/D,cAAM;AAAA,UACJ,YAAAa;AAAA,QACR,IAAUb;AAEJ,YAAI,CAACa,KAAchB,GAAaG,CAAW;AACzC;AAEF,cAAMc,IAAY;AAAA,UAChB,UAAU;AAAA,UACV,WAAW;AAAA,UACX,UAAU;AAAA,UACV,mBAAmB7E;AAAA,UACnB,eAAe;AAAA,QAChB;AACD,YAAIlkB,IAAI8oB,EAAW;AAEnB,eAAO9oB,OAAK;AACV,gBAAM2L,IAAOmd,EAAW9oB,CAAC,GACnB;AAAA,YACJ,MAAA+D;AAAA,YACA,cAAAilB;AAAA,YACA,OAAOC;AAAA,UACjB,IAAYtd,GACEid,KAASnJ,EAAkB1b,CAAI;AACrC,cAAImD,IAAQnD,MAAS,UAAUklB,KAAYnK,GAAWmK,EAAS;AAkB/D,cAhBAF,EAAU,WAAWH,IACrBG,EAAU,YAAY7hB,GACtB6hB,EAAU,WAAW,IACrBA,EAAU,gBAAgB,QAC1Bf,GAAclE,EAAM,uBAAuBmE,GAAac,CAAS,GACjE7hB,IAAQ6hB,EAAU,WAId3D,OAAyBwD,OAAW,QAAQA,OAAW,YAEzDtB,GAAiBvjB,GAAMkkB,CAAW,GAElC/gB,IAAQme,KAA8Bne,IAGpC0d,MAAgB5F,EAAW,iCAAiC9X,CAAK,GAAG;AACtE,YAAAogB,GAAiBvjB,GAAMkkB,CAAW;AAClC;AAAA,UACV;AAQQ,cANIc,EAAU,kBAIdzB,GAAiBvjB,GAAMkkB,CAAW,GAE9B,CAACc,EAAU;AACb;AAGF,cAAI,CAACrE,MAA4B1F,EAAW,QAAQ9X,CAAK,GAAG;AAC1D,YAAAogB,GAAiBvjB,GAAMkkB,CAAW;AAClC;AAAA,UACV;AAEQ,UAAItD,MACFxG,EAAa,CAACyC,IAAeC,IAAUC,EAAW,GAAG,CAAA2H,OAAQ;AAC3D,YAAAvhB,IAAQ0X,GAAc1X,GAAOuhB,IAAM,GAAG;AAAA,UAClD,CAAW;AAGH,gBAAME,KAAQlJ,EAAkBwI,EAAY,QAAQ;AACpD,cAAKS,GAAkBC,IAAOC,IAAQ1hB,CAAK,GAI3C;AAAA,gBAAIqc,KAAsB,OAAO7B,MAAiB,YAAY,OAAOA,GAAa,oBAAqB,cACjG,CAAAsH;AACF,sBAAQtH,GAAa,iBAAiBiH,IAAOC,EAAM,GAAC;AAAA,gBAClD,KAAK,eACH;AACE,kBAAA1hB,IAAQqc,EAAmB,WAAWrc,CAAK;AAC3C;AAAA,gBAClB;AAAA,gBACc,KAAK,oBACH;AACE,kBAAAA,IAAQqc,EAAmB,gBAAgBrc,CAAK;AAChD;AAAA,gBAClB;AAAA,cACA;AAIQ,gBAAI;AACF,cAAI8hB,KACFf,EAAY,eAAee,IAAcjlB,GAAMmD,CAAK,IAGpD+gB,EAAY,aAAalkB,GAAMmD,CAAK,GAElC4gB,GAAaG,CAAW,IAC1BZ,GAAaY,CAAW,IAExB3J,EAAS6D,EAAU,OAAO;AAAA,YAE7B,QAAW;AAAA,YAAA;AAAA;AAAA,QACpB;AAEM,QAAA6F,GAAclE,EAAM,yBAAyBmE,GAAa,IAAI;AAAA,MAC/D,GAMKiB,KAAqB,SAASA,EAAmBC,GAAU;AAC/D,YAAIC,IAAa;AACjB,cAAMC,IAAiBxB,GAAoBsB,CAAQ;AAGnD,aADAnB,GAAclE,EAAM,yBAAyBqF,GAAU,IAAI,GACpDC,IAAaC,EAAe;AAEjC,UAAArB,GAAclE,EAAM,wBAAwBsF,GAAY,IAAI,GAE5DjB,GAAkBiB,CAAU,GAE5BP,GAAoBO,CAAU,GAE1BA,EAAW,mBAAmB5G,MAChC0G,EAAmBE,EAAW,OAAO;AAIzC,QAAApB,GAAclE,EAAM,wBAAwBqF,GAAU,IAAI;AAAA,MAC3D;AAED,aAAAhH,EAAU,WAAW,SAAUqF,GAAO;AACpC,YAAIR,IAAM,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE,GAC5EY,IAAO,MACP0B,IAAe,MACfrB,IAAc,MACdsB,IAAa;AASjB,YALArD,KAAiB,CAACsB,GACdtB,OACFsB,IAAQ,UAGN,OAAOA,KAAU,YAAY,CAACO,GAAQP,CAAK;AAC7C,cAAI,OAAOA,EAAM,YAAa;AAE5B,gBADAA,IAAQA,EAAM,SAAU,GACpB,OAAOA,KAAU;AACnB,oBAAMvI,GAAgB,iCAAiC;AAAA;AAGzD,kBAAMA,GAAgB,4BAA4B;AAItD,YAAI,CAACkD,EAAU;AACb,iBAAOqF;AAYT,YATK1C,MACHiC,GAAaC,CAAG,GAGlB7E,EAAU,UAAU,CAAE,GAElB,OAAOqF,KAAU,aACnBjC,KAAW,KAETA;AAEF,cAAIiC,EAAM,UAAU;AAClB,kBAAMlf,KAAUmX,EAAkB+H,EAAM,QAAQ;AAChD,gBAAI,CAACxD,EAAa1b,EAAO,KAAK+b,GAAY/b,EAAO;AAC/C,oBAAM2W,GAAgB,yDAAyD;AAAA,UAE3F;AAAA,mBACiBuI,aAAiB9E;AAG1B,UAAAkF,IAAOL,GAAc,SAAS,GAC9B+B,IAAe1B,EAAK,cAAc,WAAWJ,GAAO,EAAI,GACpD8B,EAAa,aAAa/H,GAAU,WAAW+H,EAAa,aAAa,UAGlEA,EAAa,aAAa,SADnC1B,IAAO0B,IAKP1B,EAAK,YAAY0B,CAAY;AAAA,aAE1B;AAEL,cAAI,CAACtE,MAAc,CAACL,MAAsB,CAACE;AAAA,UAE3C2C,EAAM,QAAQ,GAAG,MAAM;AACrB,mBAAOjE,KAAsB2B,KAAsB3B,EAAmB,WAAWiE,CAAK,IAAIA;AAK5F,cAFAI,IAAOL,GAAcC,CAAK,GAEtB,CAACI;AACH,mBAAO5C,KAAa,OAAOE,KAAsB1B,KAAY;AAAA,QAEvE;AAEM,QAAIoE,KAAQ7C,MACVsC,GAAaO,EAAK,UAAU;AAG9B,cAAM4B,IAAe3B,GAAoBtC,KAAWiC,IAAQI,CAAI;AAEhE,eAAOK,IAAcuB,EAAa;AAEhC,UAAArB,GAAkBF,CAAW,GAE7BY,GAAoBZ,CAAW,GAE3BA,EAAY,mBAAmBzF,MACjC0G,GAAmBjB,EAAY,OAAO;AAI1C,YAAI1C;AACF,iBAAOiC;AAGT,YAAIxC,IAAY;AACd,cAAIC;AAEF,iBADAsE,IAAa5F,GAAuB,KAAKiE,EAAK,aAAa,GACpDA,EAAK;AAEV,cAAA2B,EAAW,YAAY3B,EAAK,UAAU;AAAA;AAGxC,YAAA2B,IAAa3B;AAEf,kBAAI1D,EAAa,cAAcA,EAAa,oBAQ1CqF,IAAa1F,GAAW,KAAKvB,GAAkBiH,GAAY,EAAI,IAE1DA;AAAA,QACf;AACM,YAAIE,KAAiB5E,KAAiB+C,EAAK,YAAYA,EAAK;AAE5D,eAAI/C,MAAkBb,EAAa,UAAU,KAAK4D,EAAK,iBAAiBA,EAAK,cAAc,WAAWA,EAAK,cAAc,QAAQ,QAAQ5I,EAAWoC,IAAcwG,EAAK,cAAc,QAAQ,IAAI,MAC/L6B,KAAiB,eAAe7B,EAAK,cAAc,QAAQ,OAAO;AAAA,IAAQ6B,KAGxE9E,MACFxG,EAAa,CAACyC,IAAeC,IAAUC,EAAW,GAAG,CAAA2H,OAAQ;AAC3D,UAAAgB,KAAiB7K,GAAc6K,IAAgBhB,IAAM,GAAG;AAAA,QAClE,CAAS,GAEIlF,KAAsB2B,KAAsB3B,EAAmB,WAAWkG,EAAc,IAAIA;AAAA,MACpG,GACDtH,EAAU,YAAY,WAAY;AAChC,YAAI6E,IAAM,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAE;AAChF,QAAAD,GAAaC,CAAG,GAChBlC,KAAa;AAAA,MACd,GACD3C,EAAU,cAAc,WAAY;AAClC,QAAAwE,KAAS,MACT7B,KAAa;AAAA,MACd,GACD3C,EAAU,mBAAmB,SAAU/Y,GAAKuC,GAAMzE,GAAO;AAEvD,QAAKyf,MACHI,GAAa,CAAA,CAAE;AAEjB,cAAM4B,IAAQlJ,EAAkBrW,CAAG,GAC7Bwf,IAASnJ,EAAkB9T,CAAI;AACrC,eAAO+c,GAAkBC,GAAOC,GAAQ1hB,CAAK;AAAA,MAC9C,GACDib,EAAU,UAAU,SAAUuH,GAAYC,GAAc;AACtD,QAAI,OAAOA,KAAiB,cAG5BpL,EAAUuF,EAAM4F,CAAU,GAAGC,CAAY;AAAA,MAC1C,GACDxH,EAAU,aAAa,SAAUuH,GAAYC,GAAc;AACzD,YAAIA,MAAiB,QAAW;AAC9B,gBAAMrc,IAAQ+Q,EAAiByF,EAAM4F,CAAU,GAAGC,CAAY;AAC9D,iBAAOrc,MAAU,KAAK,SAAYkR,GAAYsF,EAAM4F,CAAU,GAAGpc,GAAO,CAAC,EAAE,CAAC;AAAA,QACpF;AACM,eAAOgR,EAASwF,EAAM4F,CAAU,CAAC;AAAA,MAClC,GACDvH,EAAU,cAAc,SAAUuH,GAAY;AAC5C,QAAA5F,EAAM4F,CAAU,IAAI,CAAE;AAAA,MACvB,GACDvH,EAAU,iBAAiB,WAAY;AACrC,QAAA2B,IAAQ9B,GAAiB;AAAA,MAC1B,GACMG;AAAA,IACX;AACE,QAAIjF,KAAS+E,GAAiB;AAE9B,WAAO/E;AAAA,EAET,CAAG;AAEH,GAAEA,EAAM;AAER,MAAMiF,KAAYjF,GAAO,SAEnB0M,KACJ;AAEF,IAAIC,KAAS,CAACC,IAAO,OAAO;AAC1B,MAAIC,IAAK,IACLC,IAAQ,OAAO,gBAAgB,IAAI,WAAYF,KAAQ,EAAG;AAC9D,SAAOA;AACL,IAAAC,KAAMH,GAAYI,EAAMF,CAAI,IAAI,EAAE;AAEpC,SAAOC;AACT;AAEA,MAAME,KAA6C,gBAAAvW,EAAmB,cAA2CxS,EAAE;AAAA,EAC/G,cAAc;AACV,UAAO;AAGX,IAAAgpB,EAAA,kBAAW;AACX,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,qBAAc,MAAM;AAAA,IAAG;AACvB,IAAAA,EAAA;AACA,IAAAA,EAAA,uBAAgBL,GAAQ;AAPpB,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAOI,oBAAoB;;AAChB,UAAMM,IAAezO,EAAiB,SAAU;AAQhD,QAPA,KAAK,OAAOyO,EAAa,MACzB,KAAK,aAAaA,EAAa,YAE/B,KAAK,cAAczO,EAAiB,UAAU,CAACrH,MAAU;AACrD,WAAK,aAAaA,EAAM;AAAA,IACpC,CAAS,KAEGhQ,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,cAAa,iBAAiB;AACzD,YAAM+lB,IAAO,KAAK;AAClB,OAAI7a,IAAA6a,EAAK,UAAL,QAAA7a,EAAY,kBACZ,MAAM6a,EAAK,MAAM,cAAc;AAAA,IAE/C;AAEQ,KAAA5a,IAAA,KAAK,SAAL,QAAAA,EAAW,UAAU,yBAAyB;AAAA,MAC1C,MAAM;AAAA,MACN,MAAM;AAAA,QACF,eAAe,KAAK;AAAA,QACpB,UAAU,KAAK;AAAA,QACf,YAAY,KAAK;AAAA,MACpB;AAAA,IACb;AAAA,EACA;AAAA,EACI,uBAAuB;AACnB,SAAK,YAAa;AAAA,EAC1B;AAAA,EACI,cAAc;AACV,UAAM4a,IAAO,KAAK;AAClB,QAAKA,EAAK;AAGV,aAAQ3qB,EAAE,KAAK,EAAE,OAAO,sBAAsB,MAAM2qB,EAAK,MAAM,UAAS,GAAIA,EAAK,MAAM,aAAc3qB,EAAE,OAAO,EAAE,OAAO,mCAAoC,GAAEA,EAAE,OAAO,EAAE,KAAK2qB,EAAK,MAAM,QAAQ,SAAS,KAAKA,EAAK,MAAM,WAAW,OAAO,2BAA4B,CAAA,CAAC,GAAI3qB,EAAE,OAAO,EAAE,OAAO,kCAAmC,GAAEA,EAAE,KAAK,EAAE,OAAO,2BAA4B,GAAE2qB,EAAK,MAAM,IAAI,GAAGA,EAAK,MAAM,SAAU3qB,EAAE,KAAK,EAAE,OAAO,8BAA+B,GAAE2qB,EAAK,MAAM,KAAK,CAAE,CAAC;AAAA,EACpe;AAAA,EACI,iBAAiB;;AACb,UAAMC,KAAyB9a,KAAAlL,IAAA,KAAK,SAAL,gBAAAA,EAAW,WAAX,gBAAAkL,EAAmB,kBAC5C+a,IAAc,yBAAyB,KAAK,aAAa;AAC/D,QAAIC,IAAqB;AACzB,WAAIF,MACAE,IAAqBF,EAAuB;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB,eAAe,KAAK;AAAA,IACpC,CAAa,IAEG5qB,EAAE,OAAO,EAAE,OAAO,yBAAyB,IAAI6qB,GAAa,oCAAoC,KAAK,eAAe,WAAWnI,GAAU,SAASoI,CAAkB,GAAG;AAAA,EACvL;AAAA,EACI,iBAAiB;AACb,WAAO9qB,EAAE,OAAO,EAAE,OAAO,wBAAuB,CAAE;AAAA,EAC1D;AAAA,EACI,SAAS;AACL,YAAQ,KAAK,UAAQ;AAAA,MACjB,KAAK;AACD,eAAO,KAAK,YAAa;AAAA,MAC7B,KAAK;AACD,eAAO,KAAK,eAAgB;AAAA,MAChC,KAAK;AACD,eAAO,KAAK,eAAgB;AAAA,MAChC;AACI;AAAA,IAChB;AAAA,EACA;AACA,GAAG,CAAC,GAAG,kBAAkB;AAAA,EACjB,UAAY,CAAC,GAAG,WAAW;AAAA,EAC3B,sBAAwB,CAAC,EAAE;AAAA,EAC3B,YAAc,CAAC,EAAE;AACzB,CAAK,CAAC;AACN,SAAS+qB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,gBAAgB,EACzB,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAAS2hB,EAA4B;AAE/D;AAAA,IACZ;AAAA,GAAO;AACP;ACx6CA,SAASQ,GAAwCpI,GAAUqI,GAAS;AAChE,MAAIrI,KAAYqI;AACZ,WAAOA,EAAQ,WACV,IAAI,CAACC,MAAqB;AAC3B,UAAIC,IAAavI,EAASsI,EAAiB,SAAS;AACpD,UAAIC;AACA,gBAAQD,EAAiB,UAAQ;AAAA,UAC7B,KAAK,QAAQ;AAET,YAAAC,IAAaC,GAAwBD,CAAU;AAC/C;AAAA,UACxB;AAAA,UACoB,KAAK,UAAU;AACX,YAAAA,IAAa,KAAK,aAAaD,EAAiB,oBAAoBA,EAAiB,mBAAmB,EAAE,OAAOC,KAAcD,EAAiB,eAAe,EAAE;AACjK;AAAA,UACxB;AAAA,QACA;AAEY,aAAOC;AAAA,IACV,CAAA,EACI,OAAO,CAAC1jB,MAAU,CAAC,CAACA,CAAK,EACzB,KAAKwjB,EAAQ,aAAa,GAAG;AAE1C;AACA,SAASI,GAAUC,GAAM;AAKrB,UAAQA,GAAI;AAAA,IACR,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACnB;AACA;AACA,SAASC,GAAuBC,GAAQ;AACpC,SAAOA,EAAO,SAAQ,EAAG,QAAQ,yBAAyB,GAAG;AACjE;AAQA,SAASJ,GAAwBK,GAAW;AACxC,QAAMC,IAAM,oBAAI,KAAM,GAChBC,IAAY,IAAI,KAAKF,CAAS,GAC9BG,IAAgB,KAAK,OAAOF,EAAI,QAAO,IAAKC,EAAU,QAAS,KAAI,GAAI,GACvEE,IAAU,KAAK,MAAMD,IAAgB,EAAE,GACvCE,IAAQ,KAAK,MAAMD,IAAU,EAAE,GAC/BE,IAAO,KAAK,MAAMD,IAAQ,EAAE,GAC5BE,IAAQ,KAAK,MAAMD,IAAO,GAAG;AACnC,SAAIF,IAAU,KACH,GAAGA,CAAO,UAEjBC,IAAQ,KACD,GAAGA,CAAK,UAEfC,IAAO,MACA,GAAGA,CAAI,UAEX,GAAGC,CAAK;AACnB;AC3EA,MAAMC,KAA4C,gBAAAhY,EAAmB,cAA0CxS,EAAE;AAAA,EAC7G,cAAc;AACV,UAAO;AAGX,IAAAgpB,EAAA;AACA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,yBAAkB;AAIlB;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,sBAAe;AAIf;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,wBAAiB;AAIjB;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,0BAAmB;AACnB,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,0BAAmBxO,EAAiB,SAAU;AAe9C,IAAAwO,EAAA,yBAAkB,MAAM;;AACpB,YAAMyB,IAAc,KAAK,iBAAiB,uBAAwB;AAClE,UAAIA,GAAa;AACb,cAAMC,IAAoB,KAAK,kBACzBC,IAAc,KAAK,iBAAiB,YACpCC,IAAsB,KAAK,iBAAiB,0BAA0B;AAC5E,SAAAznB,IAAAsnB,EAAY,kBAAZ,QAAAtnB,EAA2B,iBAAiB,oBAAoB;AAAA,UAC5D,mBAAAunB;AAAA,UACA,qBAAAE;AAAA,UACA,aAAAD;AAAA,QAChB;AAAA,MACA;AAAA,IACK;AACD,IAAA3B,EAAA,qBAAc,MAAM;AAChB,UAAI,KAAK;AACL,YAAI;AACA,iBAAO,KAAK,MAAM,KAAK,YAAY;AAAA,QACnD,SACmB9R,GAAO;AACV,yBAAQ,MAAM,gCAAgCA,CAAK,GAC5C,CAAE;AAAA,QACzB;AAEQ,aAAO,CAAE;AAAA,IACZ;AAhFG,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAyCI,oBAAoB;AAChB,IAAI,KAAK,QACL,KAAK,sBAAsB,KAAK,KAAK,QAAQ;AAAA,EAEzD;AAAA,EACI,sBAAsBiK,GAAU;;AAC5B,SAAK,eAAeoI,GAAwCpI,IAAUhe,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,KAAK,GACtG,KAAK,kBAAkBomB,GAAwCpI,IAAU9S,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,QAAQ,GAC5G,KAAK,cAAckb,GAAwCpI,IAAU7S,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,IAAI,GACpG,KAAK,gBAAgBib,GAAwCpI,IAAU5S,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,aAAa,GAC/G,KAAK,aAAagb,GAAwCpI,IAAU0J,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,UAAU,GACzG,KAAK,WAAWtB,GAAwCpI,IAAU2J,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,WAAW,GACxG,KAAK,gBAAgBvB,GAAwCpI,IAAU4J,IAAA,KAAK,yBAAL,gBAAAA,EAA2B,MAAM;AAAA,EAChH;AAAA,EA0BI,SAAS;AACL,UAAMC,IAAS,KAAK,YAAa,GAC3BC,IAAiB,KAAK,YAAa1sB,EAAE,OAAO,EAAE,KAAK,KAAK,UAAU,OAAO,mCAAmC,KAAK,KAAK,UAAU,OAAOysB,EAAO,SAAS,CAAE,EAAA,CAAE,GAC3JE,IAAoB3sB,EAAEqU,IAAU,MAAM,KAAK,YAAY,KAAK,mBAAmB,UAAUqY,GAAgB1sB,EAAE,OAAO,EAAE,OAAO,mDAAkD,GAAI,KAAK,gBAAiBA,EAAE,MAAM,EAAE,OAAO,wCAAwC,OAAOysB,EAAO,SAAS,CAAA,KAAM,KAAK,YAAY,GAAI,KAAK,mBAAoBzsB,EAAE,MAAM,EAAE,OAAO,2CAA2C,OAAOysB,EAAO,YAAY,GAAI,GAAE,KAAK,eAAe,GAAI,KAAK,eAAgBzsB,EAAE,KAAK,EAAE,OAAO,+CAA+C,OAAOysB,EAAO,kBAAkB,CAAE,EAAA,GAAI,KAAK,WAAW,GAAI,KAAK,iBAAkBzsB,EAAE,KAAK,EAAE,OAAO,iDAAiD,OAAOysB,EAAO,oBAAoB,CAAA,KAAM,KAAK,aAAa,GAAI,KAAK,cAAc,CAAC,KAAK,iBAAiB,KAAK,eAAgBzsB,EAAE,KAAK,EAAE,OAAO,oCAAoC,MAAM,KAAK,YAAY,OAAOysB,EAAO,UAAU,CAAE,GAAE,QAAQ,KAAK,cAAc,KAAK,KAAK,UAAW,GAAE,KAAK,WAAW,CAAE,GAAG,KAAK,YAAY,KAAK,mBAAmB,WAAWC,CAAc;AAExhC,WAAI,KAAK,gBACG1sB,EAAE,KAAK,EAAE,OAAO,uCAAuC,SAAS,KAAK,iBAAiB,MAAM,KAAK,eAAe,KAAK,KAAK,cAAc,OAAOysB,EAAO,aAAa,CAAA,GAAI,UAAU,KAAK,QAAQ,KAAK,gBAAe,GAAIE,CAAgB,IAG1O3sB,EAAE,OAAO,EAAE,OAAO,uCAAuC,OAAOysB,EAAO,aAAa,GAAI,GAAEE,CAAgB;AAAA,EAC1H;AACA,GAAG,CAAC,GAAG,kCAAkC;AAAA,EACjC,MAAQ,CAAC,EAAE;AAAA,EACX,sBAAwB,CAAC,EAAE;AAAA,EAC3B,iBAAmB,CAAC,GAAG,kBAAkB;AAAA,EACzC,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,WAAa,CAAC,GAAG,YAAY;AAAA,EAC7B,gBAAkB,CAAC,GAAG,iBAAiB;AAAA,EACvC,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,kBAAoB,CAAC,GAAG,mBAAmB;AAAA,EAC3C,cAAgB,CAAC,EAAE;AAAA,EACnB,iBAAmB,CAAC,EAAE;AAAA,EACtB,aAAe,CAAC,EAAE;AAAA,EAClB,eAAiB,CAAC,EAAE;AAAA,EACpB,aAAe,CAAC,EAAE;AAAA,EAClB,YAAc,CAAC,EAAE;AAAA,EACjB,eAAiB,CAAC,EAAE;AAAA,EACpB,UAAY,CAAC,EAAE;AAAA,EACf,UAAY,CAAC,EAAE;AACvB,CAAK,CAAC;AACN,SAAS5B,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,gCAAgC,EACzC,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASojB,EAA2B;AAE9D;AAAA,IACZ;AAAA,GAAO;AACP;ACnIA,SAASW,GAAkBH,GAAQ;AAC/B,MAAI,OAAOA,KAAW;AAClB,QAAI;AACA,aAAO,KAAK,MAAMA,CAAM;AAAA,IACpC,QACsB;AACV,qBAAQ,MAAM,gCAAgCA,CAAM,GAC7C,CAAE;AAAA,IACrB;AAEI,SAAOA,KAAU,CAAE;AACvB;AACA,SAASI,GAAgBJ,GAAQ;AAC7B,MAAI;AACA,WAAO,KAAK,UAAUA,CAAM;AAAA,EACpC,SACW9T,GAAO;AACV,mBAAQ,MAAM,6BAA6BA,CAAK,GACzC;AAAA,EACf;AACA;AClBA,MAAMmU,KAAwC,gBAAA7Y,EAAmB,cAAsCxS,EAAE;AAAA,EACrG,cAAc;AACV,UAAO;AAMX;AAAA;AAAA;AAAA,IAAAgpB,EAAA;AALI,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAKI,SAAS;AACL,WAAQzqB,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,+BAA+B,KAAK,gBAAgB,0BAA0B;AAAA,EAC/J;AACA,GAAG,CAAC,GAAG,6BAA6B;AAAA,EAC5B,cAAgB,CAAC,GAAG,eAAe;AAC3C,CAAK,CAAC;AACN,SAAS+qB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,2BAA2B,EACpC,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASikB,EAAuB;AAE1D;AAAA,IACZ;AAAA,GAAO;AACP;ACtBA,MAAMC,KAA+C,gBAAA9Y,EAAmB,cAA2CxS,EAAE;AAAA,EACjH,cAAc;AACV,UAAO;AAMX;AAAA;AAAA;AAAA,IAAAgpB,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,8BAAuB;AAIvB;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,sBAAe;AAIf;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,yBAAkB;AAIlB;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA,oBAAa;AACb,IAAAA,EAAA,mCAA4B,CAAE;AAC9B,IAAAA,EAAA,+BAAwB,CAAE;AAC1B,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,4BAAqB;AACrB,IAAAA,EAAA;AACA,IAAAA,EAAA,qBAAc,MAAM;AAAA,IAAG;AAzCnB,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAyCI,IAAI,mBAAmB;AACnB,QAAIuC,IAAmB;AACvB,WAAI,KAAK,2BACLA,IACI,OAAO,KAAK,0BAA2B,WACjC,KAAK,yBACLH,GAAgB,KAAK,sBAAsB,IAElDG;AAAA,EACf;AAAA,EACI,mBAAmB;;AACf,SAAK,cAAc/Q,EAAiB,UAAU,CAACrH,MAAU,KAAK,kBAAkBA,CAAK,CAAC;AACtF,UAAM8V,IAAezO,EAAiB,SAAU;AAChD,SAAK,4BAA4ByO,EAAa,2BAC9C,KAAK,aAAaA,EAAa,YAC/B,KAAK,UAAS9lB,IAAA8lB,EAAa,SAAb,gBAAA9lB,EAAmB;AAAA,EACzC;AAAA,EACI,uBAAuB;;AACnB,KAAAA,IAAA,KAAK,gBAAL,QAAAA,EAAA;AAAA,EACR;AAAA,EACI,kBAAkBgQ,GAAO;;AACrB,SAAK,4BAA4B,CAAC,GAAGA,EAAM,yBAAyB,GACpE,KAAK,wBAAwB,CAAC,GAAGA,EAAM,qBAAqB,GAC5D,KAAK,aAAaA,EAAM,YACxB,KAAK,oBAAoBA,EAAM,mBAC/B,KAAK,uBAAuBA,EAAM,sBAClC,KAAK,UAAShQ,IAAAgQ,EAAM,SAAN,gBAAAhQ,EAAY,QAC1B,KAAK,qBAAqBgQ,EAAM;AAAA,EACxC;AAAA,EACI,mBAAmB;AACf,WAAQ5U,EAAE,OAAO,EAAE,OAAO,mDAAkD,GAAIA,EAAE,QAAQ,EAAE,MAAM,eAAgB,CAAA,CAAC;AAAA,EAC3H;AAAA,EACI,4BAA4B;AACxB,WAAQA,EAAE,OAAO,EAAE,OAAO,uCAAwC,GAAEA,EAAE,OAAO,EAAE,OAAO,qDAAoD,GAAIA,EAAE,6BAA6B,EAAE,iBAAiB,gCAAgC,KAAK,UAAU,UAAW,CAAA,CAAC,CAAC;AAAA,EACpQ;AAAA,EACI,mBAAmB;;AACf,WAAQA,EAAE,OAAO,EAAE,OAAO,uCAAsC,IAAI4E,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,IAAI,CAAC+lB,MAAU3qB,EAAE,kBAAkB,EAAE,UAAU,iBAAiB,sBAAsB2qB,GAAM,KAAKA,EAAK,GAAI,CAAA,KAAK7a,IAAA,KAAK,8BAAL,gBAAAA,EAAgC,IAAI,CAAC6a,GAAM9c,MAAW7N,EAAE,kCAAkC,EAAE,KAAK2qB,EAAK,IAAI,iBAAiB,KAAK,kBAAkB,mBAAmB,KAAK,sBAAsB,iBAAiB,KAAK,cAAc,oBAAoB,KAAK,iBAAiB,gBAAgB,KAAK,eAAe,aAAa,cAAc,KAAK,WAAW,iBAAiB,KAAK,cAAc,qBAAqB,KAAK,uBAAuB,KAAK,oBAAoB9c,GAAO,sBAAsB,KAAK,sBAAsB,MAAM8c,EAAI,CAAE,EAAG;AAAA,EACzuB;AAAA,EACI,sBAAsB;;AAClB,UAAMsC,IAAgB,CAAE,GAClBC,MAAuBtoB,IAAA,KAAK,WAAL,gBAAAA,EAAa,iCAAgC,GACpEuoB,MAAuBrd,IAAA,KAAK,WAAL,gBAAAA,EAAa,iCAAgC,GACpEsd,MAAkBrd,IAAA,KAAK,WAAL,gBAAAA,EAAa,0BAAyB,GACxDsd,MAAgBrd,IAAA,KAAK,WAAL,gBAAAA,EAAa,wBAAuB,GACpDsd,IAAc,KAAK,6BAA6B,CAAE;AAExD,aAASvtB,IAAI,GAAGA,IAAIqtB,GAAiBrtB;AACjC,MAAAktB,EAAc,KAAKjtB,EAAE,kBAAkB,EAAE,UAAU,UAAU,KAAK,GAAGD,CAAC,MAAO,CAAA,CAAC;AAGlF,IAAAutB,EAAY,QAAQ,CAAC3C,GAAM9c,MAAU;AACjC,UAAIqf,KACArf,IAAQqf,MAAyB,KACjCrf,IAAQqf,IAAuBI,EAAY,UAC3Czf,KAASqf;AACT,iBAASntB,IAAI,GAAGA,IAAIotB,GAAsBptB;AACtC,UAAAktB,EAAc,KAAKjtB,EAAE,kBAAkB,EAAE,UAAU,UAAU,KAAK,GAAG2qB,EAAK,EAAE,OAAO5qB,CAAC,GAAI,CAAA,CAAC;AAGjG,MAAAktB,EAAc,KAAKjtB,EAAE,kCAAkC,EAAE,KAAK2qB,EAAK,IAAI,iBAAiB,KAAK,kBAAkB,mBAAmB,KAAK,sBAAsB,iBAAiB,KAAK,cAAc,oBAAoB,KAAK,iBAAiB,gBAAgB,KAAK,eAAe,aAAa,cAAc,KAAK,WAAW,iBAAiB,KAAK,cAAc,qBAAqB,KAAK,uBAAuB,KAAK,oBAAoB9c,GAAO,sBAAsB,KAAK,sBAAsB,MAAM8c,EAAI,CAAE,CAAC;AAAA,IACzf,CAAS;AAED,aAAS5qB,IAAI,GAAGA,IAAIstB,GAAettB;AAC/B,MAAAktB,EAAc,KAAKjtB,EAAE,kBAAkB,EAAE,UAAU,UAAU,KAAK,GAAGD,CAAC,MAAO,CAAA,CAAC;AAElF,WAAQC,EAAE,OAAO,EAAE,OAAO,uCAAsC,GAAIitB,CAAa;AAAA,EACzF;AAAA,EACI,kBAAkB;;AACd,WAAQjtB,EAAE,OAAO,EAAE,OAAO,uCAAwC,IAAE4E,IAAA,KAAK,8BAAL,gBAAAA,EAAgC,IAAI,CAAC+lB,GAAM9c,MAAW7N,EAAE,kCAAkC,EAAE,KAAK2qB,EAAK,IAAI,iBAAiB,KAAK,kBAAkB,mBAAmB,KAAK,sBAAsB,iBAAiB,KAAK,cAAc,oBAAoB,KAAK,iBAAiB,gBAAgB,KAAK,eAAe,aAAa,cAAc,KAAK,WAAW,iBAAiB,KAAK,cAAc,qBAAqB,KAAK,uBAAuB,KAAK,oBAAoB9c,GAAO,sBAAsB,KAAK,sBAAsB,MAAM8c,EAAM,CAAA,EAAG;AAAA,EAC9lB;AAAA,EACI,SAAS;;AACL,QAAI,KAAK,WAAW,KAAI,MAAO;AAC3B,aAAO,KAAK,iBAAkB;AAElC,QAAI,KAAK,WAAW,SAAS,KACzB,KAAK,0BAA0B,WAAW,KAC1C,CAAC,KAAK;AACN,aAAO,KAAK,0BAA2B;AAE3C,cAAQ/lB,IAAA,KAAK,WAAL,gBAAAA,EAAa,aAAY,QAAM;AAAA,MACnC,KAAK;AACD,eAAO,KAAK,iBAAkB;AAAA,MAClC,KAAK;AACD,eAAO,KAAK,oBAAqB;AAAA,MACrC;AACI,eAAO,KAAK,gBAAiB;AAAA,IAC7C;AAAA,EACA;AACA,GAAG,CAAC,GAAG,mCAAmC;AAAA,EAClC,wBAA0B,CAAC,GAAG,2BAA2B;AAAA,EACzD,sBAAwB,CAAC,EAAE;AAAA,EAC3B,sBAAwB,CAAC,GAAG,wBAAwB;AAAA,EACpD,aAAe,CAAC,GAAG,cAAc;AAAA,EACjC,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,WAAa,CAAC,GAAG,YAAY;AAAA,EAC7B,iBAAmB,CAAC,GAAG,kBAAkB;AAAA,EACzC,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,YAAc,CAAC,EAAE;AAAA,EACjB,2BAA6B,CAAC,EAAE;AAAA,EAChC,uBAAyB,CAAC,EAAE;AAAA,EAC5B,sBAAwB,CAAC,EAAE;AAAA,EAC3B,mBAAqB,CAAC,EAAE;AAAA,EACxB,oBAAsB,CAAC,EAAE;AAAA,EACzB,QAAU,CAAC,EAAE;AACrB,CAAK,CAAC;AACN,SAAS2oB,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,mCAAmC,kBAAkB,kCAAkC,2BAA2B,EAC3H,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASkkB,EAA8B;AAEjE;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAIlkB,CAAO,KAC3B2kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI3kB,CAAO,KAC3B4kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI5kB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMC,KAA+BZ,IAC/BhC,KAAsBwC;AC3L5B,IAAIK,KAAa,EAAC,SAAS,GAAE;AAE7B;AAAA;AAAA;AAAA;AAAA;AAAA,CAMC,SAAUlQ,GAAQ;AAGnB,GAAC,WAAY;AAEZ,QAAImQ,IAAS,CAAA,EAAG;AAEhB,aAASC,IAAc;AAGtB,eAFIC,IAAU,IAEL3tB,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,YAAI6R,IAAM,UAAU7R,CAAC;AACrB,QAAI6R,MACH8b,IAAUC,EAAYD,GAASE,EAAWhc,CAAG,CAAC;AAAA,MAElD;AAEE,aAAO8b;AAAA,IACT;AAEC,aAASE,EAAYhc,GAAK;AACzB,UAAI,OAAOA,KAAQ,YAAY,OAAOA,KAAQ;AAC7C,eAAOA;AAGR,UAAI,OAAOA,KAAQ;AAClB,eAAO;AAGR,UAAI,MAAM,QAAQA,CAAG;AACpB,eAAO6b,EAAW,MAAM,MAAM7b,CAAG;AAGlC,UAAIA,EAAI,aAAa,OAAO,UAAU,YAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe;AAClG,eAAOA,EAAI,SAAU;AAGtB,UAAI8b,IAAU;AAEd,eAAS7kB,KAAO+I;AACf,QAAI4b,EAAO,KAAK5b,GAAK/I,CAAG,KAAK+I,EAAI/I,CAAG,MACnC6kB,IAAUC,EAAYD,GAAS7kB,CAAG;AAIpC,aAAO6kB;AAAA,IACT;AAEC,aAASC,EAAavmB,GAAOymB,GAAU;AACtC,aAAKA,IAIDzmB,IACIA,IAAQ,MAAMymB,IAGfzmB,IAAQymB,IAPPzmB;AAAA,IAQV;AAEC,IAAIiW,EAAO,WACVoQ,EAAW,UAAUA,GACrBpQ,EAAO,UAAUoQ,KAEjB,OAAO,aAAaA;AAAA,EAEtB,GAAG;AACH,GAAEF,EAAU;AAEZ,MAAME,IAAaF,GAAW,SC1ExBO,KAAkC,gBAAAla,EAAmB,cAAgCxS,EAAE;AAAA,EACzF,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,mBAAY;AAIZ;AAAA;AAAA;AAAA,IAAAA,EAAA,kBAAW;AAIX;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,kBAAW;AAIX;AAAA;AAAA;AAAA,IAAAA,EAAA,sBAAe;AAIf;AAAA;AAAA;AAAA,IAAAA,EAAA,eAAQ;AAIR;AAAA;AAAA;AAAA,IAAAA,EAAA,cAAO;AAIP;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA,2BAAoB,MAAM;AACtB,WAAK,YAAY,KAAM;AAAA,IAC1B;AArCG,SAAK,eAAgB,GACrB,KAAK,cAAcpgB,GAAY,MAAM,aAAgB;AAAA,EAC7D;AAAA,EAoCI,SAAS;AACL,WAAQrK,EAAE,UAAU,EAAE,KAAK,4CAA4C,cAAc,KAAK,OAAO,OAAO8tB,EAAW,sBAAsB;AAAA,MACjI,8BAA8B,KAAK,cAAc;AAAA,MACjD,+BAA+B,KAAK,cAAc;AAAA,MAClD,+BAA+B,KAAK;AAAA,IACpD,CAAa,GAAG,UAAU,KAAK,UAAU,SAAS,KAAK,mBAAmB,MAAM,KAAK,KAAM,GAAE,KAAK,WAAY,KAAK,OAAS9tB,EAAEqU,IAAU,MAAM,KAAK,iBAAiB,UAAU,KAAK,MAAMrU,EAAE,QAAQ,MAAM,KAAK,KAAK,GAAG,KAAK,iBAAiB,WAAW,KAAK,IAAI,CAAE;AAAA,EAClQ;AACA,GAAG,CAAC,GAAG,sBAAsB;AAAA,EACrB,WAAa,CAAC,CAAC;AAAA,EACf,UAAY,CAAC,CAAC;AAAA,EACd,MAAQ,CAAC,EAAE;AAAA,EACX,UAAY,CAAC,GAAG,WAAW;AAAA,EAC3B,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,OAAS,CAAC,CAAC;AAAA,EACX,MAAQ,CAAC,CAAC;AAClB,CAAK,CAAC;AACN,SAAS+qB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,oBAAoB,EAC7B,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASslB,EAAiB;AAEpD;AAAA,IACZ;AAAA,GAAO;AACP;ACpEA,SAASC,GAAoBC,GAAMC,GAAM;AACrC,QAAM5mB,IAAS,EAAE,GAAG2mB,EAAM;AAC1B,aAAWnlB,KAAOolB;AAEd,IAAIA,EAAK,eAAeplB,CAAG,MACnBolB,EAAKplB,CAAG,aAAa,UAAUmlB,EAAKnlB,CAAG,aAAa,SACpDxB,EAAOwB,CAAG,IAAIklB,GAAoBC,EAAKnlB,CAAG,GAAGolB,EAAKplB,CAAG,CAAC,IAGtDxB,EAAOwB,CAAG,IAAIolB,EAAKplB,CAAG;AAIlC,SAAOxB;AACX;AAIA,SAAS6mB,GAAuBC,GAAK;AACjC,SAAOA,EAAI,OAAO,CAACpb,GAAOvF,GAAOgL,MAAU,CAACA,EAAM,KAAK,CAAC4V,GAAYC,MAAeA,MAAe7gB,KAAS4gB,EAAW,SAASrb,CAAK,CAAC,CAAC;AAC1I;AACA,SAASub,GAAcC,GAAO;AAC1B,QAAMC,IAAU,CAAE,GACZC,IAA4B,CAACC,MAAe;;AAC9C,IAAAF,EAAQE,EAAW,IAAI,IAAI;AAAA,MACvB,OAAOA,EAAW;AAAA,MAClB,MAAMA,EAAW;AAAA,IACpB,IACDnqB,IAAAmqB,EAAW,aAAX,QAAAnqB,EAAqB,QAAQ,CAACqE,MAAU;AACpC,MAAA6lB,EAA0B7lB,CAAK;AAAA,IAC3C;AAAA,EACK;AACD,SAAA6lB,EAA0BF,CAAK,GACxBC;AACX;AACA,SAASG,GAAeC,GAAQ;AAC5B,QAAMtM,IAAO;AAAA,IACT,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU,CAAE;AAAA,EACf;AACD,gBAAO,KAAKsM,CAAM,EAAE,QAAQ,CAAC/lB,MAAQ;AACjC,UAAMwgB,IAAWuF,EAAO/lB,CAAG;AAI3B,QAHI,CAACwgB,KAGDA,EAAS,SAAS;AAClB;AAEJ,UAAMwF,IAAYxF,EAAS,KAAK,UAAU,CAAC,EAAE,MAAM,GAAG;AACtD,QAAIyF,IAAcxM,GACdyM,IAAc;AAClB,IAAAF,EAAU,QAAQ,CAACG,GAAMxhB,MAAU;AAC/B,YAAMyhB,IAAW,GAAGF,CAAW,IAAIC,CAAI;AACvC,MAAKF,EAAY,SAASG,CAAQ,MAC9BH,EAAY,SAASG,CAAQ,IAAI;AAAA,QAC7B,OAAO;AAAA,QACP,MAAMA;AAAA,QACN,UAAU,CAAE;AAAA,MACf,IAEDzhB,MAAUqhB,EAAU,SAAS,MAC7BC,EAAY,SAASG,CAAQ,EAAE,QAAQ5F,EAAS,QAEpD0F,IAAcE,GACdH,IAAcA,EAAY,SAASG,CAAQ;AAAA,IACvD,CAAS;AAAA,EACT,CAAK,GACM3M;AACX;AACA,SAAS4M,GAAcC,GAAa;AAChC,QAAMC,IAAc;AAAA,IAChB,OAAOD,EAAY;AAAA,IACnB,MAAMA,EAAY;AAAA,IAClB,UAAU,CAAE;AAAA,EACf;AACD,SAAI,OAAO,KAAKA,EAAY,QAAQ,EAAE,SAAS,MAC3CC,EAAY,WAAW,OAAO,OAAOD,EAAY,QAAQ,EAAE,IAAI,CAACE,MAAmBH,GAAcG,CAAc,CAAC,IAE7GD;AACX;AAIA,SAASE,GAA0BC,GAASC,GAAS;AAEjD,QAAMC,IAAS,OAAO,KAAKF,CAAO,GAC5BG,IAAS,OAAO,KAAKF,CAAO,GAE5BG,IAAc,IAAI,IAAID,EACvB,OAAO,CAACE,MAASA,EAAK,MAAM,GAAG,EAAE,SAAS,CAAC,EAC3C,IAAI,CAACA,MAASA,EAAK,UAAU,GAAGA,EAAK,YAAY,GAAG,CAAC,CAAC,CAAC;AAK5D,SAHuB,OAAO,YAAYH,EACrC,OAAO,CAACG,MAAS,CAACD,EAAY,IAAIC,EAAK,UAAU,GAAGA,EAAK,YAAY,GAAG,CAAC,CAAC,CAAC,EAC3E,IAAI,CAACA,MAAS,CAACA,GAAML,EAAQK,CAAI,CAAC,CAAC,CAAC;AAE7C;AACA,SAASC,GAAgBxT,GAAWyS,GAAagB,GAAc;AAC3D,QAAMC,IAAejB,EAAYzS,CAAS,GACpC2T,IAAgBF,EAAazT,CAAS,GACtC4T,IAAwB;AAAA,IAC1B,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAUF;AAAA,EACb,GACKG,IAAyB;AAAA,IAC3B,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAUF;AAAA,EACb,GAEKG,IAAgB7B,GAAc2B,CAAqB,GACnDG,IAAiB9B,GAAc4B,CAAsB,GAGrDG,IAAwBf,GAA0Ba,GAAeC,CAAc,GAE/EE,IAAevC,GAAoBsC,GAAuBD,CAAc,GAExEG,IAAe5B,GAAe2B,CAAY,GAE1CE,IAAmBtB,GAAcqB,CAAY;AACnD,SAAO;AAAA,IACH,CAAClU,CAAS,GAAGmU,EAAiB;AAAA,EACjC;AACL;AAEA,MAAMC,KAAqC,gBAAA7c,EAAmB,cAAmCxS,EAAE;AAAA,EAC/F,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,mBAAY;AAIZ;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,uBAAgB,CAAE;AAClB,IAAAA,EAAA;AACA,IAAAA,EAAA,0BAAmB;AACnB,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,qBAAcxO,EAAiB,SAAU;AAwEzC,IAAAwO,EAAA,qBAAc,CAACsE,MAAe;AAC1B,YAAMgC,IAAQhC,EAAW,KAAK,QAAQ,OAAO,EAAE,GACzC3V,IAAQ2V,EAAW;AACzB,aAAO,GAAGgC,EAAM,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,CAACC,MAASA,EAAK,YAAW,CAAE,CAAC,KAAK5X,CAAK;AAAA,IAC9F;AACD,IAAAqR,EAAA,wBAAiB,CAACsE,GAAYkC,MAAuB;AAEjD,YAAMF,IADiBhC,EAAW,KAAK,UAAUkC,EAAmB,KAAK,MAAM,EAClD,QAAQ,OAAO,EAAE,GACxC7X,IAAQ2V,EAAW;AACzB,aAAO,GAAGgC,EAAM,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,CAACC,MAASA,EAAK,YAAW,CAAE,CAAC,KAAK5X,CAAK;AAAA,IAC9F;AAtGG,SAAK,eAAgB,GACrB,KAAK,wBAAwB/O,GAAY,MAAM,uBAA0B;AAAA,EACjF;AAAA,EAmBI,kBAAkBuK,GAAO;AACrB,UAAMsc,IAAatc,EAAM,0BACnBuc,IAAYvc,EAAM;AACxB,QAAK,KAAK,WAWV;AAAA,WAPIA,EAAM,eAAe,KAAK,kBAC1BA,EAAM,eAAe,KAAK,kBAC1BA,EAAM,aAAa,KAAK,kBACxB,KAAK,gBAAgB,CAAE,GACvB,KAAK,mBAAmB,KAGxBuc,MAAc,KAAK,iBAAiBD,GAAY;AAChD,aAAK,YAAY;AACjB,cAAME,IAAoBF,EAAW,KAAK,CAACtC,MAAU,KAAK,cAAc,OAAO,KAAKA,CAAK,EAAE,CAAC,CAAC;AAE7F,QAAI,KAAK,oBACL,KAAK,gBAAgBwC,GACrB,KAAK,YAAYA,GACjB,KAAK,mBAAmB,MAEnB,KAAK,iBAAiBA,MAE3B,KAAK,YAAYlB,GAAgB,KAAK,WAAW,KAAK,eAAekB,CAAiB;AAAA,MAEtG;AACQ,WAAK,iBAAiBxc,EAAM,YAC5B,KAAK,iBAAiBA,EAAM,YAC5B,KAAK,eAAeA,EAAM,UAC1B,KAAK,gBAAgBuc;AAAA;AAAA,EAC7B;AAAA,EACI,oBAAoB;AAChB,SAAK,kBAAkB,KAAK,WAAW,GACvC,KAAK,cAAclV,EAAiB,UAAU,CAACrH,MAAU;AACrD,WAAK,kBAAkBA,CAAK;AAAA,IACxC,CAAS;AAAA,EACT;AAAA,EACI,uBAAuB;;AACnB,KAAAhQ,IAAA,KAAK,gBAAL,QAAAA,EAAA;AAAA,EACR;AAAA,EACI,qBAAqBqrB,GAAM;;AAEvB,QAD0B,CAAC,KAAK,cAAcA,CAAI;AAM9C,WAAK,gBAAgB;AAAA,QACjB,GAAG,KAAK;AAAA,QACR,CAACA,CAAI,GAAG;AAAA,MACX;AAAA,SAEA;AAID,YAAMoB,IAAe,OAAO,KAAK,KAAK,aAAa,EAAE,OAAO,CAACC,MAAa,CAACA,EAAS,SAASrB,CAAI,CAAC;AAClG,WAAK,gBAAgBoB,EAAa,OAAO,CAACE,GAAKC,OAC3CD,EAAIC,CAAG,IAAI,IACJD,IACR,EAAE;AAAA,IACjB;AAIQ,UAAME,IAAQ,OAAO,KAAK,KAAK,aAAa,EAAE,OAAO,CAACxB,MAAS,KAAK,cAAcA,CAAI,CAAC,GACjFyB,IAA8BnD,GAAuBkD,CAAK;AAChE,KAAA7sB,IAAA,KAAK,0BAAL,QAAAA,EAA4B,KAAK,EAAE,OAAO8sB,EAA2B;AAAA,EAC7E;AAAA,EAYI,SAAS;;AACL,QAAI,CAAC,KAAK;AACN;AAEJ,UAAMC,KAAa/sB,IAAA,KAAK,cAAL,gBAAAA,EAAiB,KAAK;AACzC,WAAQ5E,EAAE,OAAO,EAAE,OAAO8tB,EAAW,wBAAwB,oCAAoC,EAAG,GAAE,CAAC6D,KAAe3xB,EAAE,KAAK,EAAE,OAAO,+BAA+B,gCAAgC,GAAI2xB,KAAA,gBAAAA,EAAY,IAAI,CAAC5C,MAAe;;AACrO,YAAM6C,IAAkB7C,EAAW,YAC7BnqB,IAAAmqB,EAAW,aAAX,gBAAAnqB,EAAqB,KAAK,CAACqE,MAAU,KAAK,cAAcA,EAAM,IAAI,KAClE;AACN,aAAQjJ,EAAE,OAAO,EAAE,KAAK+uB,EAAW,MAAM,OAAOjB,EAAW,+BAA+B,EAAG,GAAE9tB,EAAE,SAAS,EAAE,OAAO8tB,EAAW,uBAAuB,yCAAyC,EAAC,GAAI9tB,EAAE,SAAS,EAAE,SAAS,KAAK,cAAc+uB,EAAW,IAAI,GAAG,UAAU,CAAC8C,MAAW,KAAK,qBAAqB9C,EAAW,IAAI,GAAG,MAAM,YAAY,GAAG6C,IAAmB5xB,EAAE,OAAO,EAAE,OAAO8tB,EAAW,iBAAiB,wCAAwC,KAAK9tB,EAAE,OAAO,EAAE,OAAO,MAAM,QAAQ,KAAK,SAAS,YAAY,MAAM,OAAM,GAAIA,EAAE,SAAS,MAAM,eAAe,GAAGA,EAAE,QAAQ,EAAE,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,QAAQ,SAAS,gBAAgB,KAAK,kBAAkB,QAAS,CAAA,CAAC,CAAC,IAAMA,EAAE,OAAO,EAAE,OAAO8tB,EAAW,kBAAkB,yCAAyC,EAAG,GAAE9tB,EAAE,OAAO,EAAE,OAAO,MAAM,QAAQ,MAAM,SAAS,aAAa,MAAM,OAAQ,GAAEA,EAAE,SAAS,MAAM,gBAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,yCAAyC,QAAQ,SAAS,gBAAgB,KAAK,kBAAkB,SAAS,mBAAmB,QAAS,CAAA,CAAC,CAAC,GAAI,KAAK,YAAY+uB,CAAU,CAAC,GAAGA,EAAW,YAAYA,EAAW,SAAS,SAAS,KAAM/uB,EAAEqU,IAAU,MAAM0a,EAAW,SAAS,IAAI,CAAC+C,MAAgB9xB,EAAE,SAAS,EAAE,KAAK8xB,EAAW,MAAM,OAAOhE,EAAW,4BAA4B,yCAAyC,GAAG,OAAO;AAAA,QAC1yC,SAAS,KAAK,cAAciB,EAAW,IAAI,IACrC,SACA;AAAA,MACT,EAAA,GAAI/uB,EAAE,SAAS,EAAE,SAAS,KAAK,cAAc8xB,EAAW,IAAI,GAAG,UAAU,CAACD,MAAW;AAClF,aAAK,qBAAqBC,EAAW,IAAI;AAAA,MAC5C,GAAE,MAAM,YAAY,GAAG9xB,EAAE,OAAO,EAAE,OAAO8tB,EAAW,kBAAkB,yCAAyC,EAAG,GAAE9tB,EAAE,OAAO,EAAE,OAAO,MAAM,QAAQ,MAAM,SAAS,aAAa,MAAM,OAAM,GAAIA,EAAE,SAAS,MAAM,gBAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,yCAAyC,QAAQ,SAAS,gBAAgB,KAAK,kBAAkB,SAAS,mBAAmB,QAAO,CAAE,CAAC,CAAC,GAAG,KAAK,eAAe8xB,GAAY/C,CAAU,CAAC,CAAE,CAAC,CAAE;AAAA,IAC/b,EAAU;AAAA,EACV;AACA,GAAG,CAAC,GAAG,0BAA0B;AAAA,EACzB,WAAa,CAAC,GAAG,YAAY;AAAA,EAC7B,eAAiB,CAAC,EAAE;AAAA,EACpB,WAAa,CAAC,EAAE;AAAA,EAChB,eAAiB,CAAC,EAAE;AAAA,EACpB,eAAiB,CAAC,EAAE;AAAA,EACpB,kBAAoB,CAAC,EAAE;AAAA,EACvB,gBAAkB,CAAC,EAAE;AAAA,EACrB,gBAAkB,CAAC,EAAE;AAAA,EACrB,cAAgB,CAAC,EAAE;AAAA,EACnB,aAAe,CAAC,EAAE;AAC1B,CAAK,CAAC;AACN,SAAShE,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,wBAAwB,EACjC,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASioB,EAAoB;AAEvD;AAAA,IACZ;AAAA,GAAO;AACP;ACpRA,MAAMiB,KAAkC,gBAAA9d,EAAmB,cAAgCxS,EAAE;AAAA,EACzF,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,aAAM;AAIN;AAAA;AAAA;AAAA,IAAAA,EAAA,aAAM;AAIN;AAAA;AAAA;AAAA,IAAAA,EAAA,qBAAcY,GAAU,OAAO;AAE/B;AAAA,IAAAZ,EAAA,kBAAW;AACX,IAAAA,EAAA,kBAAW,KAAK;AAChB,IAAAA,EAAA,oBAAa,KAAK;AAClB,IAAAA,EAAA,2BAAoB;AAIpB;AAAA;AAAA;AAAA,IAAAA,EAAA;AAKA,IAAAA,EAAA,oBAAa,YAAY;;AACrB,OAAA7lB,IAAA,KAAK,iBAAL,QAAAA,EAAmB,KAAK;AAAA,QACpB,YAAY,KAAK;AAAA,QACjB,UAAU,KAAK;AAAA,MAC3B;AAAA,IACK;AACD,IAAA6lB,EAAA,gCAAyB,CAAC/Q,MAAU;AAChC,YAAMsY,IAAetY,EAAM,QACrBjS,IAAQ,OAAO,SAASuqB,EAAa,OAAO,EAAE;AACpD,WAAK,oBAAoB,OACrBvqB,KAAS,KAAK,YACd,KAAK,aAAaA,GAClB,KAAK,WAAY,MAGjB,KAAK,aAAa,KAAK,UACvBuqB,EAAa,QAAQ,GAAG,KAAK,QAAQ;AAAA,IAE5C;AACD,IAAAvH,EAAA,8BAAuB,CAAC/Q,MAAU;AAC9B,YAAMsY,IAAetY,EAAM,QACrBjS,IAAQ,OAAO,SAASuqB,EAAa,OAAO,EAAE;AACpD,WAAK,oBAAoB,OACrBvqB,KAAS,KAAK,cACd,KAAK,WAAWA,GAChB,KAAK,WAAY,MAGjB,KAAK,WAAW,KAAK,YACrBuqB,EAAa,QAAQ,GAAG,KAAK,UAAU;AAAA,IAE9C;AA3DG,SAAK,eAAgB,GACrB,KAAK,eAAe3nB,GAAY,MAAM,cAAiB;AAAA,EAC/D;AAAA,EAsBI,mBAAmB;AACf,SAAK,aAAa,KAAK,KACvB,KAAK,WAAW,KAAK;AAAA,EAC7B;AAAA,EAiCI,SAAS;AACL,UAAM4nB,IAAW,KAAK,KAChBC,IAAW,KAAK,KAChBC,KAAiB,KAAK,aAAaF,MAAaC,IAAWD,KAAa,KACxEG,KAAe,KAAK,WAAWH,MAAaC,IAAWD,KAAa,KACpEI,IAAa,KAAK,aAAa,WAC/B,KAAK,aACL,IAAI,KAAK,KAAK,UAAU,EAAE,YAAa,GACvCC,IAAW,KAAK,aAAa,WAC7B,KAAK,WACL,IAAI,KAAK,KAAK,QAAQ,EAAE,YAAa;AAC3C,WAAQtyB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,+BAAgC,GAAEA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,wCAAwCA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,mCAAmC,OAAO;AAAA,MAC7T,MAAM,GAAGmyB,CAAY;AAAA,MACrB,OAAO,GAAGC,IAAaD,CAAY;AAAA,IACtC,EAAA,CAAE,GAAGnyB,EAAE,SAAS,EAAE,KAAK,4CAA4C,OAAO8tB,EAAW,4BAA4B,qCAAqC,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK,uBAAuB,KAAK,IAAI,GAAG,MAAM,KAAK,aAAa,OAAO,EAAE,QAAQ,KAAK,sBAAsB,QAAQ,MAAM,IAAG,GAAI,MAAM,SAAS,OAAO,KAAK,YAAY,GAAG9tB,EAAE,SAAS,EAAE,KAAK,4CAA4C,OAAO8tB,EAAW,4BAA4B,qCAAqC,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK,qBAAqB,KAAK,IAAI,GAAG,MAAM,KAAK,aAAa,OAAO,EAAE,QAAQ,KAAK,sBAAsB,QAAQ,MAAM,OAAO,MAAM,SAAS,OAAO,KAAK,SAAU,CAAA,CAAC,GAAG9tB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,qCAAsC,GAAEA,EAAE,QAAQ,EAAE,KAAK,4CAA4C,OAAO,2BAA0B,GAAIqyB,CAAU,GAAGryB,EAAE,QAAQ,EAAE,KAAK,4CAA4C,OAAO,8BAA8BsyB,CAAQ,CAAC,CAAC;AAAA,EACjiC;AACA,GAAG,CAAC,GAAG,sBAAsB;AAAA,EACrB,KAAO,CAAC,CAAC;AAAA,EACT,KAAO,CAAC,CAAC;AAAA,EACT,aAAe,CAAC,CAAC;AAAA,EACjB,UAAY,CAAC,GAAG,WAAW;AAAA,EAC3B,UAAY,CAAC,EAAE;AAAA,EACf,YAAc,CAAC,EAAE;AAAA,EACjB,mBAAqB,CAAC,EAAE;AAChC,CAAK,CAAC;AACN,SAASvH,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,oBAAoB,EAC7B,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASkpB,EAAiB;AAEpD;AAAA,IACZ;AAAA,GAAO;AACP;ACpGA,MAAMQ,KAAwC,gBAAAte,EAAmB,cAAsCxS,EAAE;AAAA,EACrG,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,eAAQ;AAIR;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA,kBAAW;AACX,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,sBAAe,YAAY;;AACvB,WAAK,WAAW,CAAC,KAAK,WACtB7lB,IAAA,KAAK,kBAAL,QAAAA,EAAoB,KAAK,KAAK;AAAA,IACjC;AArBG,SAAK,eAAgB,GACrB,KAAK,gBAAgByF,GAAY,MAAM,eAAkB;AAAA,EACjE;AAAA,EAoBI,oBAAoB;AAEhB,SAAK,cAAc4R,EAAiB,UAAU,CAACrH,MAAU;AACrD,MAAIA,EAAM,eAAe,KAAK,kBAC1BA,EAAM,WAAW,OAAO,WAAW,MACnC,KAAK,WAAW,KAEpB,KAAK,iBAAiBA,EAAM;AAAA,IACxC,CAAS;AAAA,EACT;AAAA,EACI,uBAAuB;;AACnB,KAAAhQ,IAAA,KAAK,gBAAL,QAAAA,EAAA;AAAA,EACR;AAAA,EACI,SAAS;AACL,WAAQ5E,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,yCAAyCA,EAAE,OAAO,EAAE,KAAK,2CAA0C,GAAIA,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,kCAAiC,GAAI,KAAK,KAAK,GAAG,KAAK,YAAaA,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,yCAAyC,KAAK,QAAQ,CAAE,GAAGA,EAAE,UAAU,EAAE,KAAK,4CAA4C,OAAO8tB,EAAW,wCAAwC;AAAA,MACpiB,QAAQ,KAAK;AAAA,IAChB,CAAA,GAAG,SAAS,KAAK,cAAc,MAAM,SAAU,GAAE9tB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO8tB,EAAW,oCAAoC;AAAA,MAChK,QAAQ,KAAK;AAAA,IAC7B,CAAa,EAAC,CAAE,CAAC,CAAC;AAAA,EAClB;AACA,GAAG,CAAC,GAAG,6BAA6B;AAAA,EAC5B,OAAS,CAAC,CAAC;AAAA,EACX,UAAY,CAAC,GAAG,WAAW;AAAA,EAC3B,UAAY,CAAC,EAAE;AAAA,EACf,aAAe,CAAC,EAAE;AAAA,EAClB,gBAAkB,CAAC,EAAE;AAC7B,CAAK,CAAC;AACN,SAAS/C,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,2BAA2B,EACpC,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAAS0pB,EAAuB;AAE1D;AAAA,IACZ;AAAA,GAAO;AACP;AC7DA,MAAMC,KAAyC,gBAAAve,EAAmB,cAAqCxS,EAAE;AAAA,EACrG,cAAc;AACV,UAAO;AAMX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,eAAQ,CAAE;AACV,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,qBAAcxO,EAAiB,SAAU;AARrC,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAQI,mBAAmB;AACf,SAAK,cAAcA,EAAiB,UAAU,CAACrH,MAAU;AACrD,WAAK,iBAAiBA,EAAM,cAAc;AAAA,IACtD,CAAS;AAAA,EACT;AAAA,EACI,uBAAuB;;AACnB,KAAAhQ,IAAA,KAAK,gBAAL,QAAAA,EAAA;AAAA,EACR;AAAA,EACI,uBAAuB8X,GAAW+V,GAAKC,GAAK;AACxC,UAAMC,IAAQ,IAAI,KAAKF,CAAG,GACpBG,IAAM,IAAI,KAAKF,CAAG;AACxB,SAAK,YAAY,2BAA2B;AAAA,MACxC,WAAAhW;AAAA,MACA,OAAO,GAAGA,CAAS,KAAKiW,EAAM,YAAa,CAAA,OAAOC,EAAI,YAAW,CAAE;AAAA,IAC/E,CAAS,GACD,KAAK,YAAY,OAAQ;AAAA,EACjC;AAAA,EACI,0BAA0BlW,GAAW+V,GAAKC,GAAK;AAC3C,SAAK,YAAY,2BAA2B;AAAA,MACxC,WAAAhW;AAAA,MACA,OAAO,GAAGA,CAAS,KAAK+V,CAAG,OAAOC,CAAG;AAAA,IACjD,CAAS,GACD,KAAK,YAAY,OAAQ;AAAA,EACjC;AAAA,EACI,4BAA4BhW,GAAW+U,GAAO;AAC1C,IAAIA,EAAM,SAAS,IACf,KAAK,YAAY,2BAA2B;AAAA,MACxC,WAAA/U;AAAA,MACA,OAAO,GAAGA,CAAS,SAAS+U,EAAM,KAAK,GAAG,CAAC;AAAA,IAC3D,CAAa,IAGD,KAAK,YAAY,8BAA8B/U,CAAS,GAE5D,KAAK,YAAY,OAAQ;AAAA,EACjC;AAAA,EACI,8BAA8BmW,GAAU;AACpC,SAAK,YAAY,cAAcA,IAAW,UAAU,OAAO,GAC3D,KAAK,YAAY,OAAQ;AAAA,EACjC;AAAA,EACI,8BAA8BA,GAAU;AACpC,SAAK,YAAY,YAAYA,IAAW,SAAS,KAAK,GACtD,KAAK,YAAY,OAAQ;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAII,SAAS;AACL,WAAQ7yB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,2BAA0B,GAAI,KAAK,MAAM,IAAI,CAAC8yB,MAAe;AACpI,cAAQA,EAAW,MAAI;AAAA,QACnB,KAAK,aAAa;AACd,gBAAMnI,IAAOmI,GACPL,IAAM,IAAI,KAAK9H,EAAK,QAAQ,OAAO,EAAE,QAAS,GAC9C+H,IAAM,IAAI,KAAK/H,EAAK,QAAQ,OAAO,EAAE,QAAS,GAC9CoI,IAAmB1H,GAAUV,EAAK,QAAQ,WAAW;AAE3D,iBAAQ3qB,EAAE,OAAO,EAAE,OAAO,mCAAoC,GAAEA,EAAE,KAAK,EAAE,OAAO,iCAAkC,GAAE8yB,EAAW,KAAK,GAAG9yB,EAAE,sBAAsB,EAAE,KAAKyyB,GAAK,KAAKC,GAAK,aAAaK,GAAkB,UAAU,QAAQ,gBAAgB,CAACrZ,MAAU;AACzP,iBAAK,uBAAuBiR,EAAK,WAAWjR,EAAM,OAAO,YAAYA,EAAM,OAAO,QAAQ;AAAA,UAC7F,EAAA,CAAE,CAAC;AAAA,QAC5B;AAAA,QACgB,KAAK,gBAAgB;AACjB,gBAAMiR,IAAOmI;AAEb,iBAAQ9yB,EAAE,OAAO,EAAE,OAAO,mCAAoC,GAAEA,EAAE,KAAK,EAAE,OAAO,iCAAkC,GAAE8yB,EAAW,KAAK,GAAG9yB,EAAE,sBAAsB,EAAE,KAAK2qB,EAAK,QAAQ,KAAK,KAAKA,EAAK,QAAQ,KAAK,aAAaA,EAAK,QAAQ,aAAa,gBAAgB,CAACjR,MAAU;AACzQ,iBAAK,0BAA0BiR,EAAK,WAAWjR,EAAM,OAAO,YAAYA,EAAM,OAAO,QAAQ;AAAA,UAChG,EAAA,CAAE,CAAC;AAAA,QAC5B;AAAA,QACgB,KAAK,UAAU;AACX,gBAAMiR,IAAOmI;AAEb,iBAAQ9yB,EAAE,OAAO,EAAE,OAAO,mCAAoC,GAAEA,EAAE,KAAK,EAAE,OAAO,iCAAgC,GAAI8yB,EAAW,KAAK,GAAG9yB,EAAE,0BAA0B,EAAE,WAAW2qB,EAAK,WAAW,yBAAyB,CAACjR,MAAU;AAC5N,iBAAK,4BAA4BiR,EAAK,WAAWjR,EAAM,OAAO,KAAK;AAAA,UACtE,EAAA,CAAE,CAAC;AAAA,QAC5B;AAAA,QACgB,KAAK,oBAAoB;AACrB,gBAAMiR,IAAOmI;AACb,iBAAQ9yB,EAAE,6BAA6B,EAAE,OAAO2qB,EAAK,OAAO,UAAUA,EAAK,QAAQ,UAAU,iBAAiB,CAACjR,MAAU;AACjH,iBAAK,8BAA8BA,EAAM,MAAM;AAAA,UAC3E,GAA2B;AAAA,QAC3B;AAAA,QACgB,KAAK,oBAAoB;AACrB,gBAAMiR,IAAOmI;AACb,iBAAQ9yB,EAAE,6BAA6B,EAAE,OAAO2qB,EAAK,OAAO,UAAUA,EAAK,QAAQ,UAAU,iBAAiB,CAACjR,MAAU;AACjH,iBAAK,8BAA8BA,EAAM,MAAM;AAAA,UAC3E,GAA2B;AAAA,QAC3B;AAAA,MACA;AAAA,IACA,CAAS,CAAC;AAAA,EACV;AACA,GAAG,CAAC,GAAG,4BAA4B;AAAA,EAC3B,OAAS,CAAC,EAAE;AAAA,EACZ,aAAe,CAAC,EAAE;AAAA,EAClB,gBAAkB,CAAC,EAAE;AAC7B,CAAK,CAAC;AACN,SAAS6T,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,4BAA4B,0BAA0B,sBAAsB,2BAA2B,EAChH,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAAS2pB,EAAwB;AAE3D;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI3pB,CAAO,KAC3B2kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI3kB,CAAO,KAC3B4kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI5kB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMsF,KAAyBR,IACzBzH,KAAsBwC,IC5ItB0F,KAAsC,gBAAAhf,EAAmB,cAAoCxS,EAAE;AAAA,EACjG,cAAc;AACV,UAAO;AAMX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,6BAAsB;AACtB,IAAAA,EAAA,eAAQ;AANJ,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAMI,SAAS;AACL,WAAQzqB,EAAE,SAAS,EAAE,KAAK,4CAA4C,OAAO8tB,EAAW,2BAA2B,KAAK,mBAAmB,GAAG,SAAS,uBAAwB,GAAE,KAAK,KAAK;AAAA,EACnM;AACA,GAAG,CAAC,GAAG,2BAA2B;AAAA,EAC1B,qBAAuB,CAAC,GAAG,wBAAwB;AAAA,EACnD,OAAS,CAAC,CAAC;AACnB,CAAK,CAAC;AACN,SAAS/C,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,yBAAyB,EAClC,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASoqB,EAAqB;AAExD;AAAA,IACZ;AAAA,GAAO;AACP;ACxBA,MAAMC,KAAiC,gBAAAjf,EAAmB,cAA+BxS,EAAE;AAAA,EACvF,cAAc;AACV,UAAO;AASX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,oBAAa;AAIb;AAAA;AAAA;AAAA,IAAAA,EAAA,yBAAkB;AAIlB;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,sBAAe,CAAE;AAIjB;AAAA;AAAA;AAAA,IAAAA,EAAA,0BAAmB;AAInB;AAAA;AAAA;AAAA,IAAAA,EAAA,oBAAa;AAIb;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA,oBAAa,KAAK;AAClB,IAAAA,EAAA,eAAQ;AACR,IAAAA,EAAA;AACA,IAAAA,EAAA,qBAAcxO,EAAiB,SAAU;AAazC,IAAAwO,EAAA,uBAAgB,CAAC/Q,MAAU;AACvB,YAAMyZ,IAAQzZ,EAAM;AAEpB,MADA,KAAK,aAAayZ,EAAM,OACnB,KAAK,cAGV,KAAK,cAAcA,EAAM,KAAK;AAAA,IACjC;AACD,IAAA1I,EAAA,uBAAgB,OAAOhjB,MAAU;AAC7B,UAAIA,MAAUwU,EAAiB,SAAQ,EAAG,YAG1C;AAAA,aAAK,aAAaxU,EAAM,KAAM,GAC9B,KAAK,QAAQ,IACb,KAAK,YAAY,cAAc,KAAK,UAAU;AAC9C,YAAI;AACA,gBAAM,KAAK,YAAY,OAAQ;AAAA,QAC3C,SACekR,GAAO;AACV,kBAAQ,IAAIA,CAAK,GACjB,KAAK,QAAQ;AAAA,QACzB;AAAA;AAAA,IACK;AACD,IAAA8R,EAAA,0BAAmB,MAAM;AACrB,WAAK,aAAa,IAClB,KAAK,aAAa,IAClB,KAAK,YAAY,cAAc,EAAE,GACjC,KAAK,YAAY,6BAA6B,EAAE,GAChD,KAAK,QAAQ;AAAA,IAChB;AACD,IAAAA,EAAA,0BAAmB,OAAO/Q,MAAU;AAChC,MAAAA,EAAM,eAAgB,GACtB,MAAM,KAAK,cAAc,KAAK,UAAU;AAAA,IAC3C;AA9FG,SAAK,eAAgB,GACrB,KAAK,aAAarP,GAAY,MAAM,YAAe,GACnD,KAAK,YAAYA,GAAY,MAAM,WAAc,GACjD,KAAK,YAAYA,GAAY,MAAM,WAAc;AAAA,EACzD;AAAA,EA6CI,OAAO;;AACH,IAAI,KAAK,SACL,KAAK,YAAY,WAAW,KAAK,IAAI,IACrCzF,IAAA,KAAK,cAAL,QAAAA,EAAgB;AAAA,EAE5B;AAAA,EACI,oBAAoB;AAChB,SAAK,KAAM;AAAA,EACnB;AAAA,EACI,eAAe;AACX,SAAK,KAAM;AAAA,EACnB;AAAA,EAmCI,SAAS;AACL,UAAMwuB,IAAwBxG,GAAkB,KAAK,YAAY,GAC3DyG,IAAuB,KAAK,WAAW,SAAS,GAChDC,IAAsBxF,EAAW,0BAA0B;AAAA,MAC7D,qCAAqC,KAAK,oBAAoB;AAAA,MAC9D,sCAAsC,KAAK,oBAAoB;AAAA,MAC/D,qCAAqC,KAAK,oBAAoB;AAAA,IAC1E,CAAS,GAEKyF,IAAkB;AAAA,MACpB,KAF0B,KAAK,cAAc,KAAK,QAErB,YAAY;AAAA,IAC5C;AACD,WAAQvzB,EAAE,QAAQ,EAAE,KAAK,4CAA4C,OAAO,0BAA0B,UAAU,KAAK,iBAAgB,GAAIA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAOszB,GAAqB,OAAOC,KAAmBvzB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,mCAAoC,GAAEA,EAAE,sBAAsB,EAAE,KAAK,4CAA4C,eAAe,KAAK,kBAAkB,OAAO,KAAK,YAAW,CAAE,CAAC,GAAG,KAAK,cAAeA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,kCAAmC,GAAEA,EAAE,2BAA2B,EAAE,KAAK,4CAA4C,OAAO,KAAK,WAAY,CAAA,CAAC,GAAI,KAAK,SAAUA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,kCAAiC,GAAIA,EAAE,6BAA6B,EAAE,KAAK,4CAA4C,cAAc,yBAAyB,CAAC,GAAIA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,4BAA6B,GAAEA,EAAE,SAAS,EAAE,KAAK,4CAA4C,cAAc,OAAO,OAAO,qBAAqB,SAAS,MAAA;;AAAM,cAAA4E,IAAA,KAAK,eAAL,gBAAAA,EAAiB;AAAA,OAAQ,QAAQ,MAAA;;AAAM,cAAAA,IAAA,KAAK,cAAL,gBAAAA,EAAgB;AAAA,OAAQ,SAAS,CAAC8U,MAAU;AAC3vC,WAAK,cAAcA,CAAK;AAAA,IAC3B,GAAE,aAAa,KAAK,kBAAkB,OAAO0Z,GAAuB,MAAM,QAAQ,OAAO,KAAK,WAAY,CAAA,GAAGpzB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,wCAAuC,GAAIA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,iCAAiC,SAAS,aAAa,MAAM,QAAQ,OAAO,8BAA8B,mBAAmB,oBAAqB,GAAEA,EAAE,SAAS,EAAE,KAAK,4CAA4C,IAAI,oBAAqB,GAAE,+BAA+B,GAAGA,EAAE,QAAQ,EAAE,KAAK,4CAA4C,GAAG,qNAAqN,QAAQ,gBAAgB,gBAAgB,OAAO,kBAAkB,SAAS,mBAAmB,SAAS,CAAC,CAAC,GAAGqzB,KAAyBrzB,EAAE,UAAU,EAAE,KAAK,4CAA4C,MAAM,UAAU,OAAO,kCAAkC,SAAS,KAAK,iBAAkB,GAAEA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,gCAAgC,SAAS,aAAa,MAAM,QAAQ,OAAO,8BAA8B,mBAAmB,aAAY,GAAIA,EAAE,SAAS,EAAE,KAAK,4CAA4C,IAAI,aAAY,GAAI,oCAAoC,GAAGA,EAAE,QAAQ,EAAE,KAAK,4CAA4C,GAAG,yIAAyI,QAAQ,gBAAgB,gBAAgB,OAAO,kBAAkB,SAAS,mBAAmB,QAAO,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC;AAAA,EAC1uD;AAAA,EACI,WAAW,WAAW;AAAE,WAAO;AAAA,MAC3B,MAAQ,CAAC,cAAc;AAAA,IAC/B;AAAA,EAAM;AACN,GAAG,CAAC,GAAG,0BAA0B;AAAA,EACzB,YAAc,CAAC,GAAG,aAAa;AAAA,EAC/B,iBAAmB,CAAC,GAAG,kBAAkB;AAAA,EACzC,aAAe,CAAC,GAAG,cAAc;AAAA,EACjC,YAAc,CAAC,GAAG,aAAa;AAAA,EAC/B,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,kBAAoB,CAAC,GAAG,mBAAmB;AAAA,EAC3C,YAAc,CAAC,GAAG,aAAa;AAAA,EAC/B,MAAQ,CAAC,EAAE;AAAA,EACX,YAAc,CAAC,EAAE;AAAA,EACjB,OAAS,CAAC,EAAE;AACf,GAAE,QAAW;AAAA,EACV,MAAQ,CAAC,cAAc;AAC/B,CAAK,CAAC;AACN,SAAS+qB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,0BAA0B,sBAAsB,6BAA6B,yBAAyB,EAC/G,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASqqB,EAAgB;AAEnD;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAIrqB,CAAO,KAC3B4kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI5kB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI7kB,CAAO,KAC3B0kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;ACpKA,MAAMiG,KAAuBN,IACvBnI,KAAsBwC,ICGtBkG,KAAwC,gBAAAxf,EAAmB,cAAoCxS,EAAE;AAAA,EACnG,cAAc;AACV,UAAO;AAMX;AAAA;AAAA;AAAA,IAAAgpB,EAAA;AAEA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA,iCAA0B;AAC1B,IAAAA,EAAA,+BAAwB;AACxB,IAAAA,EAAA,+BAAwB;AAExB;AAAA,IAAAA,EAAA,8BAAuB,MAAM;AAAA,IAAG;AAChC,IAAAA,EAAA,qBAAc,MAAM;AAAA,IAAG;AAjBnB,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAiBI,mBAAmB;AACf,SAAK,cAAcxO,EAAiB,UAAU,CAACrH,MAAU;AAErD,WAAK,aAAaA,EAAM,YACxB,KAAK,uBAAuBA,EAAM,sBAClC,KAAK,oBAAoBA,EAAM,mBAC/B,KAAK,qBAAqBA,EAAM,oBAEhC,KAAK,0BAA0B,KAAK,KAAK,KAAK,qBAAqB,KAAK,oBAAoB,GAC5F,KAAK,yBACA,KAAK,oBAAoB,KAAK,KAAK,uBAAuB,GAC/D,KAAK,yBACA,KAAK,uBAAuB,KAAK,KAAK,uBACnC,KAAK,sBAEb,KAAK,uBAAuBA,EAAM;AAAA,IAC9C,CAAS;AAAA,EACT;AAAA,EACI,uBAAuB;;AACnB,KAAAhQ,IAAA,KAAK,gBAAL,QAAAA,EAAA;AAAA,EACR;AAAA,EACI,eAAe0Y,GAAM;AACjB,SAAK,qBAAqBA,CAAI;AAAA,EACtC;AAAA,EACI,wBAAwBA,GAAM;AAC1B,WAAQtd,EAAE,MAAM,MAAMA,EAAE,UAAU,EAAE,OAAO8tB,EAAW,+BAA+B;AAAA,MAC7E,sCAAsC,KAAK,sBAAsBxQ;AAAA,IACjF,CAAa,GAAG,SAAS,MAAM,KAAK,eAAeA,CAAI,GAAG,MAAM,YAAYA,CAAI,CAAC;AAAA,EACjF;AAAA,EACI,yBAAyBA,GAAM;AAC3B,QAAI,OAAK,2BAA2BA;AAGpC,cAAI,KAAK,2BAA2B,KAChCA,IAAO,KAAK,KAAK,KAAK,0BAA0B,CAAC,IAC/C,KAAK,qBAAqBA,IAAO,IACjC,KAAK,qBAAqBA,IAAO,KAC3Btd,EAAE,MAAM,MAAMA,EAAE,UAAU,EAAE,OAAO8tB,EAAW,+BAA+B;AAAA,QAC7E,sCAAsC,KAAK,sBAAsBxQ;AAAA,MACrF,CAAiB,GAAG,SAAS,MAAM,KAAK,eAAeA,CAAI,GAAG,MAAM,YAAYA,CAAI,CAAC,IAErEtd,EAAE,MAAM,MAAMA,EAAE,QAAQ,EAAE,OAAO,iCAAiC,KAAK,CAAC;AAAA,EACxF;AAAA,EACI,6BAA6B;AACzB,QAAI,OAAK,2BAA2B;AAGpC,aAAI,KAAK,2BAA2B,KAChC,KAAK,qBAAqB,KAC1B,KAAK,qBAAqB,KAAK,0BAA0B,IACjDA,EAAE,MAAM,MAAMA,EAAE,UAAU,EAAE,OAAO8tB,EAAW,+BAA+B;AAAA,QAC7E,sCAAsC,KAAK,sBAAsB,KAC7D,KAAK,sBAAsB,KAAK,0BAA0B;AAAA,MACjE,CAAA,GAAG,MAAM,UAAU,SAAS,MAAM,KAAK,eAAe,KAAK,qBAAqB,KAAK,0BAA0B,IAC1G,KAAK,0BAA0B,IAC/B,CAAC,EAAC,GAAI,KAAK,qBAAqB,KAAK,0BAA0B,IACnE,KAAK,0BAA0B,IAC/B,CAAC,CAAC,IAEJ9tB,EAAE,MAAM,MAAMA,EAAE,QAAQ,EAAE,OAAO,iEAAgE,GAAI,KAAK,iBAAiB,CAAC;AAAA,EAC5I;AAAA,EACI,SAAS;AAEL,QAAI,GAAC,KAAK,cAAc,KAAK,2BAA2B;AAGxD,aAAQA,EAAE,OAAO,EAAE,OAAO8tB,EAAW,0BAA0BlB,GAAkB,KAAK,gBAAgB,EAAE,CAAC,KAAK5sB,EAAE,OAAO,EAAE,OAAO,iCAAkC,GAAEA,EAAE,sBAAsB,EAAE,UAAU,KAAK,sBAAsB,GAAG,WAAW,YAAY,eAAe,MAAM,KAAK,eAAe,KAAK,IAAI,GAAG,KAAK,oBAAoB,CAAC,CAAC,GAAG,OAAO,YAAY,cAAc,QAAQ,MAAMA,EAAE,OAAO,EAAE,OAAO,MAAM,QAAQ,MAAM,SAAS,aAAa,MAAM,QAAQ,OAAO,gCAAgCA,EAAE,SAAS,MAAM,oBAAoB,GAAGA,EAAE,QAAQ,EAAE,GAAG,0BAA0B,QAAQ,gBAAgB,gBAAgB,OAAO,kBAAkB,SAAS,mBAAmB,QAAO,CAAE,CAAC,GAAG,UAAU,IAAM,CAAC,GAAGA,EAAE,MAAM,EAAE,OAAO,iCAAiC,KAAK,wBAAwB,CAAC,GAAG,KAAK,yBAAyB,CAAC,GAAG,KAAK,2BAA4B,GAAE,KAAK,yBAAyB,KAAK,0BAA0B,IAC94B,KAAK,0BAA0B,IAC/B,CAAC,GAAG,KAAK,wBAAwB,KAAK,uBAAuB,CAAC,GAAGA,EAAE,OAAO,EAAE,OAAO,iCAAgC,GAAIA,EAAE,sBAAsB,EAAE,UAAU,KAAK,sBAAsB,KAAK,yBAAyB,WAAW,YAAY,eAAe,MAAM;AAC9P,aAAK,eAAe,KAAK,IAAI,KAAK,yBAAyB,KAAK,oBAAoB,CAAC,CAAC;AAAA,MACtG,GAAe,OAAO,QAAQ,cAAc,SAAS,MAAMA,EAAE,OAAO,EAAE,OAAO,MAAM,QAAQ,MAAM,SAAS,aAAa,MAAM,QAAQ,OAAO,6BAA8B,GAAEA,EAAE,SAAS,MAAM,gBAAgB,GAAGA,EAAE,QAAQ,EAAE,GAAG,yBAAyB,QAAQ,gBAAgB,gBAAgB,OAAO,kBAAkB,SAAS,mBAAmB,QAAO,CAAE,CAAC,GAAG,UAAU,GAAM,CAAA,CAAC,CAAC;AAAA,EACpX;AACA,GAAG,CAAC,GAAG,0BAA0B;AAAA,EACzB,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,YAAc,CAAC,EAAE;AAAA,EACjB,sBAAwB,CAAC,EAAE;AAAA,EAC3B,mBAAqB,CAAC,EAAE;AAAA,EACxB,oBAAsB,CAAC,EAAE;AAAA,EACzB,yBAA2B,CAAC,EAAE;AAAA,EAC9B,uBAAyB,CAAC,EAAE;AAAA,EAC5B,uBAAyB,CAAC,EAAE;AAAA,EAC5B,sBAAwB,CAAC,EAAE;AACnC,CAAK,CAAC;AACN,SAASutB,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,0BAA0B,oBAAoB,EACvD,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAAS4qB,EAAuB;AAE1D;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI5qB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMgG,KAAwBD,IACxB1I,KAAsBwC,IC/HtBoG,KAA2C,gBAAA1f,EAAmB,cAAuCxS,EAAE;AAAA,EACzG,cAAc;AACV,UAAO,GACP,KAAK,eAAgB;AAAA,EAC7B;AAAA,EACI,gBAAgB;AACZ,IAAAwa,EAAiB,SAAQ,EAAG,qBAAqB,EAAI;AAAA,EAC7D;AAAA,EACI,SAAS;AACL,WAAQjc,EAAE,UAAU,EAAE,KAAK,4CAA4C,MAAM,UAAU,SAAS,KAAK,cAAc,KAAK,IAAI,EAAC,GAAIA,EAAE,QAAQ,EAAE,KAAK,2CAA0C,CAAE,CAAC;AAAA,EACvM;AACA,GAAG,CAAC,GAAG,4BAA4B,CAAC;AACpC,SAASutB,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,4BAA4B,EACrC,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAAS8qB,EAA0B;AAE7D;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMC,KAA2BD,IAC3B5I,KAAsBwC,IC1BtBsG,KAA2C,gBAAA5f,EAAmB,cAAyCxS,EAAE;AAAA,EAC3G,cAAc;AACV,UAAO;AAGX,IAAAgpB,EAAA;AACA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA,0BAAmB;AACnB,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAcA,IAAAA,EAAA,yBAAkB,MAAM;;AACpB,YAAM7V,IAAQqH,EAAiB,SAAU,GACnCiQ,IAActX,EAAM,uBAAwB;AAClD,UAAIsX,GAAa;AACb,cAAMC,IAAoB,KAAK,kBACzBC,IAAcxX,EAAM,YACpByX,IAAsBzX,EAAM,0BAA0B,UAAU;AACtE,SAAAhQ,IAAAsnB,EAAY,kBAAZ,QAAAtnB,EAA2B,iBAAiB,oBAAoB;AAAA,UAC5D,mBAAAunB;AAAA,UACA,qBAAAE;AAAA,UACA,aAAAD;AAAA,QAChB;AAAA,MACA;AAAA,IACK;AArCG,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAUI,sBAAsBxJ,GAAU;;AAC5B,SAAK,eAAeoI,GAAwCpI,IAAUhe,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,KAAK,GACvG,KAAK,kBAAkBomB,GAAwCpI,IAAU9S,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,QAAQ,GAC7G,KAAK,OAAOkb,GAAwCpI,IAAU7S,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,IAAI,GAC9F,KAAK,WAAWib,GAAwCpI,IAAU5S,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,WAAW,GACzG,KAAK,WAAWgb,GAAwCpI,IAAU0J,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,QAAQ;AAAA,EAC9G;AAAA,EACI,oBAAoB;AAChB,IAAI,KAAK,QACL,KAAK,sBAAsB,KAAK,KAAK,QAAQ;AAAA,EAEzD;AAAA,EACI,uBAAuB;AAAA,EAAA;AAAA,EAevB,SAAS;AACL,WAAQtsB,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,iCAAiC,MAAM,KAAK,MAAM,SAAS,KAAK,gBAAgB,KAAK,IAAI,EAAC,GAAI,KAAK,YAAaA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,8CAA+C,GAAEA,EAAE,OAAO,EAAE,KAAK,4CAA4C,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,OAAO,sCAAqC,CAAE,CAAC,GAAIA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,6CAA4C,GAAIA,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,sCAAuC,GAAE,KAAK,YAAY,GAAGA,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,yCAA0C,GAAE,KAAK,eAAe,CAAC,CAAC;AAAA,EACh0B;AACA,GAAG,CAAC,GAAG,iCAAiC;AAAA,EAChC,MAAQ,CAAC,EAAE;AAAA,EACX,uBAAyB,CAAC,EAAE;AAAA,EAC5B,kBAAoB,CAAC,GAAG,mBAAmB;AAAA,EAC3C,MAAQ,CAAC,EAAE;AAAA,EACX,UAAY,CAAC,EAAE;AAAA,EACf,UAAY,CAAC,EAAE;AAAA,EACf,cAAgB,CAAC,EAAE;AAAA,EACnB,iBAAmB,CAAC,EAAE;AAC9B,CAAK,CAAC;AACN,SAAS+qB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,+BAA+B,EACxC,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASgrB,EAA0B;AAE7D;AAAA,IACZ;AAAA,GAAO;AACP;;ACjEA,MAAMC,KAA2C,gBAAA7f,EAAmB,cAAyCxS,EAAE;AAAA,EAC3G,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA;AAAA,IAAAgpB,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,iBAAS7lB,KAAAqX,EAAiB,SAAU,EAAC,SAA5B,gBAAArX,GAAkC;AAdvC,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAcI,mBAAmB;;AACf,WAAQ5E,EAAE,OAAO,EAAE,OAAO,gCAA+B,IAAI4E,IAAA,KAAK,0BAAL,gBAAAA,EAA4B,IAAI,CAAC+lB,MAAU3qB,EAAE,kBAAkB,EAAE,sBAAsB2qB,GAAM,UAAU,iBAAiB,KAAKA,EAAK,GAAI,CAAA,KAAK7a,IAAA,KAAK,8BAAL,gBAAAA,EAAgC,IAAI,CAAC6a,GAAM9c,MAAW7N,EAAE,iCAAiC,EAAE,MAAM2qB,GAAM,KAAKA,EAAK,IAAI,uBAAuB,KAAK,uBAAuB,kBAAkB,KAAK,wBAAwB,KAAK,oBAAoB,KAAK9c,EAAO,CAAA,EAAG;AAAA,EAC/c;AAAA,EACI,sBAAsB;;AAClB,UAAMof,IAAgB,CAAE,GAClBC,MAAuBtoB,IAAA,KAAK,WAAL,gBAAAA,EAAa,iCAAgC,GACpEuoB,MAAuBrd,IAAA,KAAK,WAAL,gBAAAA,EAAa,iCAAgC,GACpEsd,MAAkBrd,IAAA,KAAK,WAAL,gBAAAA,EAAa,0BAAyB,GACxDsd,MAAgBrd,IAAA,KAAK,WAAL,gBAAAA,EAAa,wBAAuB,GACpDsd,IAAc,KAAK,6BAA6B,CAAE;AAExD,aAASvtB,IAAI,GAAGA,IAAIqtB,GAAiBrtB;AACjC,MAAAktB,EAAc,KAAKjtB,EAAE,kBAAkB,EAAE,UAAU,UAAU,KAAK,GAAGD,CAAC,MAAO,CAAA,CAAC;AAGlF,IAAAutB,EAAY,QAAQ,CAAC3C,GAAM9c,MAAU;AACjC,UAAIqf,KACArf,IAAQqf,MAAyB,KACjCrf,IAAQqf,IAAuBI,EAAY,UAC3Czf,KAASqf;AACT,iBAASntB,IAAI,GAAGA,IAAIotB,GAAsBptB;AACtC,UAAAktB,EAAc,KAAKjtB,EAAE,kBAAkB,EAAE,UAAU,UAAU,KAAK,GAAG2qB,EAAK,EAAE,OAAO5qB,CAAC,GAAI,CAAA,CAAC;AAGjG,MAAAktB,EAAc,KAAKjtB,EAAE,iCAAiC,EAAE,MAAM2qB,GAAM,KAAKA,EAAK,IAAI,uBAAuB,KAAK,uBAAuB,kBAAkB,KAAK,wBAAwB,KAAK,oBAAoB,KAAK9c,EAAK,CAAE,CAAC;AAAA,IACtO,CAAS;AAED,aAAS9N,IAAI,GAAGA,IAAIstB,GAAettB;AAC/B,MAAAktB,EAAc,KAAKjtB,EAAE,kBAAkB,EAAE,UAAU,UAAU,KAAK,GAAGD,CAAC,MAAO,CAAA,CAAC;AAElF,WAAOC,EAAE,OAAO,EAAE,OAAO,gCAA+B,GAAIitB,CAAa;AAAA,EACjF;AAAA,EACI,kBAAkB;;AACd,WAAQjtB,EAAE,OAAO,EAAE,OAAO,gCAA+B,IAAI4E,IAAA,KAAK,8BAAL,gBAAAA,EAAgC,IAAI,CAAC+lB,GAAM9c,MAAW7N,EAAE,iCAAiC,EAAE,MAAM2qB,GAAM,KAAKA,EAAK,IAAI,uBAAuB,KAAK,uBAAuB,kBAAkB,KAAK,wBAAwB,KAAK,oBAAoB,KAAK9c,EAAK,CAAE,EAAG;AAAA,EACpU;AAAA,EACI,SAAS;;AACL,cAAQjJ,IAAA,KAAK,WAAL,gBAAAA,EAAa,aAAY,QAAM;AAAA,MACnC,KAAK;AACD,eAAO,KAAK,iBAAkB;AAAA,MAClC,KAAK;AACD,eAAO,KAAK,oBAAqB;AAAA,MACrC;AACI,eAAO,KAAK,gBAAiB;AAAA,IAC7C;AAAA,EACA;AACA,GAAG,CAAC,GAAG,iCAAiC;AAAA,EAChC,uBAAyB,CAAC,EAAE;AAAA,EAC5B,2BAA6B,CAAC,EAAE;AAAA,EAChC,uBAAyB,CAAC,EAAE;AAAA,EAC5B,mBAAqB,CAAC,GAAG,qBAAqB;AAAA,EAC9C,sBAAwB,CAAC,GAAG,yBAAyB;AAC7D,CAAK,CAAC;AACN,SAASmmB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,iCAAiC,kBAAkB,+BAA+B,EAC3F,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASirB,EAA0B;AAE7D;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAIjrB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI7kB,CAAO,KAC3B0kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;ACtFA,MAAMwG,KAAyC,gBAAA9f,EAAmB,cAAqCxS,EAAE;AAAA,EACrG,cAAc;AACV,UAAO;AAUX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAgpB,EAAA,cAAO;AAIP;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,gBAAS;AAIT;AAAA;AAAA;AAAA,IAAAA,EAAA,wBAAiB;AACjB,IAAAA,EAAA,iCAA0B;AAC1B,IAAAA,EAAA;AACA,IAAAA,EAAA,mCAA4B,CAAE;AAC9B,IAAAA,EAAA,+BAAwB,CAAE;AAC1B,IAAAA,EAAA;AACA,IAAAA,EAAA,mBAAY;AACZ,IAAAA,EAAA,sBAAe;AACf,IAAAA,EAAA,sBAAe;AACf,IAAAA,EAAA,sBAAe;AACf,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AA8BA,IAAAA,EAAA,6BAAsB,CAAC/Q,MAAU;AAC7B,MAAK,KAAK,YAAY,SAASA,EAAM,MAAM,MACvC,KAAK,YAAY;AAAA,IAExB;AAWD;AAAA;AAAA;AAAA,IAAA+Q,EAAA,+BAAwB,CAAC/Q,MAAU;AAM/B,UAJIA,EAAM,QAAQ,KAAK,UACnB,KAAK,oBAAoBA,CAAK,GAG9B,EAAC,KAAK,YAAY,SAAS,SAAS,aAAa;AAIrD,gBAAQA,EAAM,KAAG;AAAA,UACb,KAAK;AAAA,UACL,KAAK;AACD,YAAAA,EAAM,eAAgB,GACtB,KAAK,oBAAoBA,EAAM,GAAG;AAClC;AAAA,UACJ,KAAK;AACD,YAAAuC,EAAiB,SAAQ,EAAG,qBAAqB,EAAK;AACtD;AAAA,UACJ;AACI;AAAA,QAChB;AAAA,IACK;AACD,IAAAwO,EAAA,yBAAkB,MAAM;AACpB,YAAM0I,IAAQ,KAAK,YAAY,cAAc,oBAAoB;AACjE,MAAAA,KAAA,QAAAA,EAAO;AAAA,IACV;AAxGG,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAiCI,IAAI,cAAc;AAAE,WAAO;AAAA,EAAK;AAAA,EAChC,mBAAmB;AAEf,UAAMa,IAAgB,iBAAiB,SAAS,eAAe;AAC/D,SAAK,eAAe,OAAO,WAAWA,EAAc,iBAAiB,oBAAoB,EAAE,MAAM,GACjG,KAAK,eAAe,OAAO,WAAWA,EAAc,iBAAiB,oBAAoB,EAAE,MAAM,GACjG,KAAK,eAAe,OAAO,WAAWA,EAAc,iBAAiB,oBAAoB,EAAE,MAAM,GAEjG,KAAK,0BAA0B/X,EAAiB,SAAU,EAAC,kBAE3D,SAAS,iBAAiB,SAAS,KAAK,mBAAmB,GAC3D,SAAS,iBAAiB,WAAW,KAAK,qBAAqB,GAE/D,KAAK,cAAcA,EAAiB,UAAU,CAACrH,MAAU;AACrD,MAAI,KAAK,4BAA4BA,EAAM,oBACvC,KAAK,8BAA8BA,EAAM,gBAAgB,GAE7D,KAAK,4BAA4B,CAAC,GAAGA,EAAM,yBAAyB,GACpE,KAAK,wBAAwB,CAAC,GAAGA,EAAM,qBAAqB,GAC5D,KAAK,aAAaA,EAAM,YACxB,KAAK,oBAAoBA,EAAM,mBAC/B,KAAK,uBAAuBA,EAAM;AAAA,IAC9C,CAAS;AAAA,EACT;AAAA,EACI,uBAAuB;;AACnB,KAAAhQ,IAAA,KAAK,gBAAL,QAAAA,EAAA,YACA,SAAS,oBAAoB,SAAS,KAAK,mBAAmB,GAC9D,SAAS,oBAAoB,WAAW,KAAK,qBAAqB;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA,EASI,8BAA8BuY,GAAW;AACrC,SAAK,0BAA0BA,GAC/B,SAAS,KAAK,MAAM,WAAWA,IAAY,WAAW;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCI,mBAAmB;AACf,SAAK,YAAY,IACb,KAAK,SAAS,YACd,OAAO,kBACP,OAAO,eAAe,QAAQ,KAAK,iBACnClB,EAAiB,SAAQ,EAAG,qBAAqB,EAAI,GAEhD,KAAK,iBACN,KAAK,eAAe,SAAS,cAAc,0BAA0B,GACrE,KAAK,aAAa,wBAAwB,KAAK,uBAC/C,KAAK,aAAa,aAAa,QAAQ,YAAY,GACnD,SAAS,KAAK,YAAY,KAAK,YAAY;AAAA,EAG3D;AAAA,EACI,yBAAyB4V,GAAQ;AAC7B,IAAA5V,EAAiB,SAAQ,EAAG,qBAAqB,EAAK;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKI,oBAAoBvC,GAAO;AACvB,QAAKA,EAAM,WAAW,KAAK,mBAAmB,UACzCA,EAAM,UAAU,KAAK,mBAAmB,SACxCA,EAAM,WAAW,KAAK,mBAAmB;AAE1C,UADAA,EAAM,eAAgB,GAClB,KAAK,SAAS,YAAY,CAAC,KAAK,yBAAyB;AACzD,cAAMua,IAAmB,KAAK,YAAY,cAAc,oBAAoB;AAC5E,QAAAA,KAAA,QAAAA,EAAkB;AAAA,MAClC;AAEgB,QAAAhY,EACK,SAAQ,EACR,qBAAqB,CAAC,KAAK,uBAAuB;AAAA,EAGvE;AAAA,EACI,0BAA0B;AACtB,IAAAA,EAAiB,SAAQ,EAAG,qBAAqB,EAAK;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,oBAAoBiY,GAAW;;AAC3B,UAAMC,IAAY,MAAM,KAAK,SAAS,iBAAiB,iCAAiC,CAAC,EAAE,OAAO,CAACvuB,MAAO,CAACA,EAAG,aAAa,UAAU,KAAKA,EAAG,iBAAiB,IAAI,GAC5JwuB,IAAeD,EAAU,QAAQ,SAAS,aAAa;AAC7D,QAAID,MAAc;AACd,OAAAtvB,IAAAuvB,GAAWC,IAAe,KAAKD,EAAU,MAAM,MAA/C,QAAAvvB,EAAkD;AAAA,aAE7CsvB,MAAc;AACnB,UAAIE,KAAgB;AAChB,SAAAtkB,IAAAqkB,EAAUC,IAAe,CAAC,MAA1B,QAAAtkB,EAA6B;AAAA,WAE5B;AACD,cAAMqjB,IAAQ,SAAS,cAAc,oBAAoB;AACzD,QAAIA,MACAA,EAAM,MAAO,GACb,sBAAsB,MAAM;AACxB,UAAAA,EAAM,eAAeA,EAAM,MAAM,QACjCA,EAAM,iBAAiBA,EAAM,MAAM;AAAA,QAC3D,CAAqB;AAAA,MAErB;AAAA,EAEA;AAAA,EACI,IAAI,mBAAmB;;AACnB,WAAQ,KAAK,gBACTrjB,KAAAlL,IAAA,KAAK,eAAL,gBAAAA,EAAiB,WAAjB,gBAAAkL,EAAyB,UAAS,KAClC,KAAK,0BAA0B,SAAS;AAAA,EACpD;AAAA,EACI,sBAAsB;AAClB,UAAMukB,IAAoB,KAAK,oBAAoB,KAAK,WAClDC,IAAwBxG,EAAW,4DAA4D;AAAA,MACjG,mCAAmCuG;AAAA,IAC/C,CAAS;AACD,WAAQr0B,EAAE,OAAO,EAAE,OAAOs0B,KAAyBt0B,EAAE,0BAA0B,EAAE,cAAc,KAAK,iBAAiB,KAAK,IAAI,EAAC,CAAE,GAAGq0B,KAAsBr0B,EAAE,OAAO,EAAE,OAAO,8CAA8CA,EAAE,OAAO,EAAE,OAAO,2CAA0C,GAAIA,EAAE,iCAAiC,EAAE,uBAAuB,KAAK,uBAAuB,2BAA2B,KAAK,2BAA2B,uBAAuB,KAAK,uBAAuB,mBAAmB,KAAK,mBAAmB,sBAAsB,KAAK,qBAAoB,CAAE,CAAC,CAAC,CAAE;AAAA,EACxkB;AAAA,EACI,qBAAqB;AACjB,QAAI,KAAK,yBAAyB;AAC9B,YAAMs0B,IAAwBxG,EAAW,4BAA4B;AAAA,QACjE,mCAAmC,KAAK;AAAA,MACxD,CAAa;AACD,aAAQ9tB,EAAE,OAAO,EAAE,OAAO,iCAAgC,GAAIA,EAAE,OAAO,EAAE,OAAO,2CAA2C,SAAS,KAAK,0BAA0B,GAAGA,EAAE,OAAO,EAAE,OAAO,uCAAwC,GAAEA,EAAE,OAAO,EAAE,OAAOs0B,EAAuB,GAAEt0B,EAAE,OAAO,EAAE,OAAO,yCAA0C,GAAEA,EAAE,0BAA0B,EAAE,cAAc,KAAK,iBAAiB,KAAK,IAAI,GAAG,aAAa,KAAK,gBAAgB,KAAK,IAAI,EAAG,CAAA,GAAGA,EAAE,UAAU,EAAE,MAAM,UAAU,OAAO,0CAA0C,SAAS,KAAK,wBAAwB,KAAK,IAAI,EAAC,GAAI,QAAQ,CAAC,GAAG,KAAK,oBAAqBA,EAAE,iCAAiC,EAAE,uBAAuB,KAAK,uBAAuB,2BAA2B,KAAK,2BAA2B,uBAAuB,KAAK,uBAAuB,mBAAmB,KAAK,mBAAmB,sBAAsB,KAAK,qBAAoB,CAAE,CAAE,CAAC,CAAC;AAAA,IACr6B;AAAA,EACA;AAAA,EACI,0BAA0B;AACtB,QAAI,KAAK;AACL,aAAQA,EAAE,OAAO,EAAE,OAAO,sCAAqC,GAAIA,EAAE,OAAO,EAAE,OAAO,2BAA0B,GAAIA,EAAE,OAAO,EAAE,OAAO,yCAA0C,GAAEA,EAAE,0BAA0B,EAAE,cAAc,KAAK,iBAAiB,KAAK,IAAI,GAAG,aAAa,KAAK,gBAAgB,KAAK,IAAI,EAAC,CAAE,GAAGA,EAAE,UAAU,EAAE,MAAM,UAAU,OAAO,0CAA0C,SAAS,KAAK,wBAAwB,KAAK,IAAI,EAAC,GAAI,QAAQ,CAAC,GAAG,KAAK,oBAAqBA,EAAE,iCAAiC,EAAE,uBAAuB,KAAK,uBAAuB,2BAA2B,KAAK,2BAA2B,uBAAuB,KAAK,uBAAuB,mBAAmB,KAAK,mBAAmB,sBAAsB,KAAK,qBAAoB,CAAE,CAAE,CAAC;AAAA,EAE1wB;AAAA,EACI,SAAS;AACL,YAAQ,KAAK,MAAI;AAAA,MACb,KAAK;AACD,eAAO,KAAK,oBAAqB;AAAA,MACrC,KAAK;AACD,eAAO,KAAK,mBAAoB;AAAA,MACpC,KAAK;AACD,eAAO,KAAK,wBAAyB;AAAA,IACrD;AAAA,EACA;AACA,GAAG,CAAC,GAAG,4BAA4B;AAAA,EAC3B,MAAQ,CAAC,CAAC;AAAA,EACV,uBAAyB,CAAC,EAAE;AAAA,EAC5B,QAAU,CAAC,CAAC;AAAA,EACZ,gBAAkB,CAAC,GAAG,iBAAiB;AAAA,EACvC,yBAA2B,CAAC,EAAE;AAAA,EAC9B,aAAe,CAAC,EAAE;AAAA,EAClB,2BAA6B,CAAC,EAAE;AAAA,EAChC,uBAAyB,CAAC,EAAE;AAAA,EAC5B,YAAc,CAAC,EAAE;AAAA,EACjB,WAAa,CAAC,EAAE;AAAA,EAChB,cAAgB,CAAC,EAAE;AAAA,EACnB,cAAgB,CAAC,EAAE;AAAA,EACnB,cAAgB,CAAC,EAAE;AAAA,EACnB,mBAAqB,CAAC,EAAE;AAAA,EACxB,sBAAwB,CAAC,EAAE;AAAA,EAC3B,cAAgB,CAAC,EAAE;AAC3B,CAAK,CAAC;AACN,SAASutB,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,4BAA4B,kBAAkB,sBAAsB,6BAA6B,0BAA0B,2BAA2B,4BAA4B,iCAAiC,+BAA+B,EAC3P,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASkrB,EAAwB;AAE3D;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAIlrB,CAAO,KAC3B0rB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI1rB,CAAO,KAC3B2rB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI3rB,CAAO,KAC3B4rB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI5rB,CAAO,KAC3B6rB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI7rB,CAAO,KAC3B2kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI3kB,CAAO,KAC3B0kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI1kB,CAAO,KAC3B4kB,GAAuB;AAE3B;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAI5kB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMiH,KAAyBZ,IACzBhJ,KAAsBwC,ICtStBqH,KAAyC,gBAAA3gB,EAAmB,cAAqCxS,EAAE;AAAA,EACrG,cAAc;AACV,UAAO;AAYX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAgpB,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA,eAAQ;AACR,IAAAA,EAAA,eAAQ,CAAC,GAAG,CAAC;AACb,IAAAA,EAAA,sBAAe;AACf,IAAAA,EAAA,qBAAc,MAAM;AAAA,IAAG;AAzBnB,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAyBI,oBAAoB;AAChB,SAAK,cAAcxO,EAAiB,UAAU,CAACrH,MAAU;AAErD,WAAK,aAAaA,EAAM,YACxB,KAAK,oBAAoBA,EAAM,mBAC/B,KAAK,uBAAuBA,EAAM,sBAClC,KAAK,qBAAqBA,EAAM,oBAEhC,KAAK,QAAQ,KAAK,oBAClB,KAAK,MAAM,CAAC,IACR,KAAK,qBAAqB,IACpB,IACA,KAAK,wBAAwB,KAAK,oBAAoB,IAChE,KAAK,MAAM,CAAC,IAAI,KAAK,uBAAuB,KAAK,mBACjD,KAAK,MAAM,CAAC,IACR,KAAK,MAAM,CAAC,IAAI,KAAK,qBACf,KAAK,qBACL,KAAK,MAAM,CAAC,GACtB,KAAK,iBAAiBA,EAAM,2BAA2B,KAAK,KAAM,QAAQ,CAAC;AAAA,IACvF,CAAS;AAAA,EACT;AAAA,EACI,uBAAuB;AACnB,IAAI,KAAK,eACL,KAAK,YAAa;AAAA,EAE9B;AAAA,EACI,SAAS;AACL,WAAI,CAAC,KAAK,cAAc,KAAK,uBAAuB,IACzC,OAEH5U,EAAE,KAAK,EAAE,OAAO8tB,EAAW,4BAA4BlB,GAAkB,KAAK,gBAAgB,CAAA,CAAE,CAAC,EAAC,GAAI,KAAK,kBAC7G,KAAK,gBAAgB;AAAA,MACnBrB,GAAuB,KAAK,MAAM,CAAC,CAAC;AAAA,MACpCA,GAAuB,KAAK,MAAM,CAAC,CAAC;AAAA,IACvC,GAAEA,GAAuB,KAAK,KAAK,GAAG,KAAK,YAAY,IACtD,GAAG,KAAK,KAAK,qBAAqB,KAAK,YAAY,IAAI;AAAA,EACrE;AACA,GAAG,CAAC,GAAG,4BAA4B;AAAA,EAC3B,iBAAmB,CAAC,EAAE;AAAA,EACtB,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,YAAc,CAAC,EAAE;AAAA,EACjB,mBAAqB,CAAC,EAAE;AAAA,EACxB,sBAAwB,CAAC,EAAE;AAAA,EAC3B,oBAAsB,CAAC,EAAE;AAAA,EACzB,OAAS,CAAC,EAAE;AAAA,EACZ,OAAS,CAAC,EAAE;AAAA,EACZ,cAAgB,CAAC,EAAE;AAC3B,CAAK,CAAC;AACN,SAASgC,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,0BAA0B,EACnC,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAAS+rB,EAAwB;AAE3D;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMC,KAAyBD,IACzB7J,KAAsBwC,IC9FtBuH,KAAkC,gBAAA7gB,EAAmB,cAAgCxS,EAAE;AAAA,EACzF,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA,IAAAgpB,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,kBAAW;AAIX;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA,iBAAU,CAAE;AAIZ;AAAA;AAAA;AAAA,IAAAA,EAAA;AAIA;AAAA;AAAA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA,8BAAuB,MAAM;AAAA,IAAG;AAChC,IAAAA,EAAA,iCAA0B,MAAM;AAAA,IAAG;AACnC,IAAAA,EAAA,4BAAqB,CAAC/Q,MAAU;AAC5B,WAAK,aAAa,KAAKA,EAAM,OAAO,KAAK;AAAA,IAC5C;AA5CG,SAAK,eAAgB,GACrB,KAAK,eAAerP,GAAY,MAAM,cAAiB;AAAA,EAC/D;AAAA,EA2CI,eAAeiT,GAAM;AACjB,SAAK,qBAAqBA,CAAI;AAAA,EACtC;AAAA,EACI,SAAS;AACL,WAAQtd,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO8tB,EAAW,sBAAsBlB,GAAkB,KAAK,gBAAgB,CAAA,CAAE,CAAC,EAAC,GAAI,KAAK,SAAU5sB,EAAE,SAAS,EAAE,KAAK,4CAA4C,OAAO,4BAA4B,IAAI,KAAK,WAAW,GAAG,KAAK,OAAO,UAAU,SAAS,KAAK,QAAO,GAAI,KAAK,KAAK,GAAIA,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,mCAAoC,GAAEA,EAAE,UAAU,EAAE,KAAK,4CAA4C,mBAAmB,KAAK,QAAQ,KAAK,WAAW,GAAG,KAAK,OAAO,WAAW,QAAW,OAAO,4BAA4B,UAAU,KAAK,UAAU,IAAI,KAAK,SAAS,MAAM,KAAK,MAAM,UAAU,KAAK,mBAAkB,IAAK,OAAO,KAAK,WAAY,WACnvB,KAAK,MAAM,KAAK,OAAO,IACvB,KAAK,SAAS,IAAI,CAAC,EAAE,OAAA+wB,GAAO,OAAAtpB,GAAO,UAAAstB,QAC7B/0B,EAAE,UAAU,EAAE,KAAKyH,GAAO,OAAOA,GAAO,UAAUstB,EAAU,GAAEhE,CAAK,CAC9E,CAAC,GAAG/wB,EAAE,OAAO,EAAE,KAAK,4CAA4C,OAAO,iCAAiC,OAAO,MAAM,QAAQ,MAAM,SAAS,aAAa,MAAM,QAAQ,OAAO,6BAA8B,GAAEA,EAAE,SAAS,EAAE,KAAK,2CAA0C,GAAI,sBAAsB,GAAGA,EAAE,QAAQ,EAAE,KAAK,4CAA4C,GAAG,yBAAyB,QAAQ,gBAAgB,gBAAgB,OAAO,kBAAkB,SAAS,mBAAmB,QAAS,CAAA,CAAC,CAAC,GAAG,KAAK,WAAYA,EAAE,KAAK,EAAE,KAAK,4CAA4C,OAAO,6BAA8B,GAAE,KAAK,OAAO,CAAE;AAAA,EACpnB;AACA,GAAG,CAAC,GAAG,sBAAsB;AAAA,EACrB,SAAW,CAAC,CAAC;AAAA,EACb,UAAY,CAAC,CAAC;AAAA,EACd,SAAW,CAAC,GAAG,UAAU;AAAA,EACzB,OAAS,CAAC,CAAC;AAAA,EACX,SAAW,CAAC,GAAG,UAAU;AAAA,EACzB,MAAQ,CAAC,CAAC;AAAA,EACV,SAAW,CAAC,CAAC;AAAA,EACb,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,sBAAwB,CAAC,EAAE;AAAA,EAC3B,sBAAwB,CAAC,EAAE;AAAA,EAC3B,yBAA2B,CAAC,EAAE;AACtC,CAAK,CAAC;AACN,SAAS+qB,KAAsB;AAC3B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,oBAAoB,EAC7B,QAAQ,CAAAliB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASisB,EAAiB;AAEpD;AAAA,IACZ;AAAA,GAAO;AACP;ACjFA,MAAME,KAAkD,gBAAA/gB,EAAmB,cAA8CxS,EAAE;AAAA,EACvH,cAAc;AACV,UAAO;AAOX;AAAA;AAAA;AAAA;AAAA,IAAAgpB,EAAA,mBAAY;AAIZ;AAAA;AAAA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA;AAEA;AAAA,IAAAA,EAAA,iCAA0B,MAAM;AAAA,IAAG;AACnC,IAAAA,EAAA,8BAAuB,MAAM;AAAA,IAAG;AAChC,IAAAA,EAAA,qBAAc,MAAM;AAAA,IAAG;AAtBnB,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAsBI,mBAAmB;AACf,SAAK,cAAcxO,EAAiB,UAAU,CAACrH,MAAU;AAErD,WAAK,aAAaA,EAAM,YACxB,KAAK,uBAAuBA,EAAM,sBAClC,KAAK,oBAAoBA,EAAM,mBAC/B,KAAK,qBAAqBA,EAAM,oBAEhC,KAAK,0BAA0B,KAAK,KAAK,KAAK,qBAAqB,KAAK,oBAAoB,GAE5F,KAAK,uBAAuBA,EAAM,sBAClC,KAAK,0BAA0BA,EAAM;AAAA,IACjD,CAAS,GACD,KAAK,8BACDqH,EAAiB,SAAQ,EAAG;AAAA,EACxC;AAAA,EACI,uBAAuB;;AACnB,KAAArX,IAAA,KAAK,gBAAL,QAAAA,EAAA;AAAA,EACR;AAAA,EACI,SAAS;AAEL,QAAI,GAAC,KAAK,cAAc,KAAK,2BAA2B;AAGxD,aAAQ5E,EAAE,OAAO,EAAE,OAAO8tB,EAAW,uCAAuClB,GAAkB,KAAK,gBAAgB,EAAE,CAAC,EAAG,GAAE5sB,EAAE,OAAO,EAAE,OAAO,6CAA4C,GAAIA,EAAE,SAAS,EAAE,OAAO,oDAAoD,SAAS,mDAAkD,GAAI,kBAAkB,GAAGA,EAAE,OAAO,EAAE,OAAO,sDAAsDA,EAAE,sBAAsB,EAAE,SAAS,oDAAoD,MAAM,oBAAoB,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC+B,GAAG8L,MAAU;AACnjB,cAAMpG,IAAQ,KAAK,8BACf,OAAO,KAAK,SAAS,IAAIoG;AAC7B,eAAO;AAAA,UACH,OAAO,GAAGpG,CAAK;AAAA,UACf,OAAAA;AAAA,QACH;AAAA,MACjB,CAAa,GAAG,gBAAgB,CAACiS,MAAU;AAC3B,aAAK,wBAAwB,OAAOA,EAAM,MAAM,CAAC,GACjD,KAAK,qBAAqB,CAAC;AAAA,MAC3C,EAAe,CAAA,CAAC,CAAC,CAAC;AAAA,EAClB;AACA,GAAG,CAAC,GAAG,uCAAuC;AAAA,EACtC,WAAa,CAAC,CAAC;AAAA,EACf,cAAgB,CAAC,GAAG,eAAe;AAAA,EACnC,YAAc,CAAC,EAAE;AAAA,EACjB,mBAAqB,CAAC,EAAE;AAAA,EACxB,sBAAwB,CAAC,EAAE;AAAA,EAC3B,oBAAsB,CAAC,EAAE;AAAA,EACzB,yBAA2B,CAAC,EAAE;AAAA,EAC9B,6BAA+B,CAAC,EAAE;AAAA,EAClC,yBAA2B,CAAC,EAAE;AAAA,EAC9B,sBAAwB,CAAC,EAAE;AACnC,CAAK,CAAC;AACN,SAAS6T,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,uCAAuC,oBAAoB,EACpE,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASmsB,EAAiC;AAEpE;AAAA,MACJ,KAAK;AACD,QAAK,eAAe,IAAInsB,CAAO,KAC3B6kB,GAAuB;AAE3B;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMuH,KAAkCD,IAClCjK,KAAsBwC,IClGtBd,KAAS;AAAA,GAGTyI,KAAmC,gBAAAjhB,EAAmB,cAA+BxS,EAAE;AAAA,EACzF,cAAc;AACV,UAAO;AAMX;AAAA;AAAA;AAAA,IAAAgpB,EAAA,eAAQ;AAIR;AAAA;AAAA;AAAA,IAAAA,EAAA,qBAAc;AACd,IAAAA,EAAA,sBAAe,CAAC0K,MACLA,EACF,QAAQ,UAAU,CAAChd,MAAU,IAAIA,EAAM,YAAa,CAAA,EAAE,EACtD;AAbL,SAAK,eAAgB;AAAA,EAC7B;AAAA,EAcI,mBAAmB;AAEf,UAAMid,IAAe,SAAS,cAAc,oBAAoB,KAC5D,SAAS,cAAc,OAAO;AAClC,IAAAA,EAAa,YAAY3I,IACzB2I,EAAa,KAAK;AAClB,UAAMC,IAAO,SAAS,QAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC;AACrE,IAAKA,EAAK,SAASD,CAAY,MACvBC,EAAK,aACLA,EAAK,aAAaD,GAAcC,EAAK,UAAU,IAG/CA,EAAK,YAAYD,CAAY,IAIrC,SAAS,KAAK,QAAQ,QAAQ,KAAK,OAEnC,OAAO,QAAQ,KAAK,MAAM,KAAK,WAAW,CAAC,EAAE,IAAI,CAAC,CAAClsB,GAAKzB,CAAK,MAAM;AAC/D,eAAS,gBAAgB,MAAM,YAAY,KAAK,KAAK,aAAayB,CAAG,CAAC,IAAI,GAAGzB,CAAK,EAAE;AAAA,IAChG,CAAS;AAAA,EACT;AAAA,EACI,SAAS;AAAA,EAEb;AACA,GAAG,CAAC,GAAG,qBAAqB;AAAA,EACpB,OAAS,CAAC,CAAC;AAAA,EACX,aAAe,CAAC,GAAG,cAAc;AACzC,CAAK,CAAC;AACN,SAAS8lB,KAAwB;AAC7B,MAAI,OAAO,iBAAmB;AAC1B;AAGJ,EADmB,CAAC,mBAAmB,EAC5B,QAAQ,CAAA1kB,MAAW;AAAE,YAAQA,GAAO;AAAA,MAC3C,KAAK;AACD,QAAK,eAAe,IAAIA,CAAO,KAC3B,eAAe,OAAOA,GAASqsB,EAAkB;AAErD;AAAA,IACZ;AAAA,GAAO;AACP;AAEA,MAAMI,KAAmBJ,IACnBnK,KAAsBwC;ACnE5B;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMltB,KAAE,oBAAI,IAAI,CAAC,YAAW,aAAY,OAAM,SAAQ,WAAW,CAAC,GAAEN,KAAE,oBAAI,WAAQ0D,KAAE,CAAC,GAAE,GAAEvD,GAAEK,GAAEJ,MAAI;AAAC,QAAMK,IAAEL,KAAA,gBAAAA,EAAI;AAAG,EAASK,MAAT,UAAY,EAAE,CAAC,IAAEN,GAAQA,KAAN,QAAS,KAAK,YAAY,aAAW,EAAE,gBAAgB,CAAC,KAAGA,MAAIK,MAAI,CAACF,GAAEoD,GAAEvD,MAAI;AAAC,QAAI,IAAEH,GAAE,IAAIM,CAAC;AAAE,IAAS,MAAT,UAAYN,GAAE,IAAIM,GAAE,IAAE,oBAAI,KAAG;AAAE,QAAIF,IAAE,EAAE,IAAIsD,CAAC;AAAE,IAASvD,MAAT,SAAoBC,MAAT,UAAY,EAAE,IAAIsD,GAAEtD,IAAE,EAAC,aAAYD,EAAC,CAAC,GAAEG,EAAE,iBAAiBoD,GAAEtD,CAAC,KAAGA,EAAE,cAAYD,IAAWC,MAAT,WAAa,EAAE,OAAOsD,CAAC,GAAEpD,EAAE,oBAAoBoD,GAAEtD,CAAC;AAAA,EAAE,GAAG,GAAEK,GAAEN,CAAC;AAAC,GAAEA,KAAE,CAAC,EAAC,OAAMH,GAAE,SAAQG,GAAE,cAAaK,GAAE,QAAO,GAAE,aAAYC,EAAC,MAAI;AAAC,QAAM4C,IAAE,IAAI,IAAI,OAAO,KAAK,KAAG,CAAE,CAAA,CAAC,GAAEM,IAAE3D,EAAE,WAAY,CAACS,GAAEkD,MAAI;AAAC,UAAMtD,IAAEL,EAAE,OAAO,oBAAI,KAAG,GAAE4C,IAAE5C,EAAE,OAAO,IAAI,GAAEkB,IAAE,CAAA,GAAGX,IAAE,CAAA;AAAG,eAAS,CAACP,GAAE0D,CAAC,KAAI,OAAO,QAAQjD,CAAC,EAAE,CAAAH,GAAE,IAAIN,CAAC,IAAEkB,EAAgBlB,MAAd,cAAgB,UAAQA,CAAC,IAAE0D,IAAEL,EAAE,IAAIrD,CAAC,KAAGA,KAAKQ,EAAE,YAAUD,EAAEP,CAAC,IAAE0D,IAAExC,EAAElB,CAAC,IAAE0D;AAAE,WAAO1D,EAAE,gBAAiB,MAAI;AAAC,UAAU4C,EAAE,YAAT,KAAiB;AAAO,YAAMtC,IAAE,oBAAI;AAAI,iBAAUN,KAAKO,EAAE,CAAAmD,GAAEd,EAAE,SAAQ5C,GAAES,EAAET,CAAC,GAAEK,EAAE,QAAQ,IAAIL,CAAC,GAAE,CAAC,GAAEK,EAAE,QAAQ,OAAOL,CAAC,GAAEM,EAAE,IAAIN,GAAES,EAAET,CAAC,CAAC;AAAE,iBAAS,CAACM,GAAEN,CAAC,KAAIK,EAAE,QAAQ,CAAAqD,GAAEd,EAAE,SAAQtC,GAAE,QAAON,GAAE,CAAC;AAAE,MAAAK,EAAE,UAAQC;AAAA,IAAC,CAAC,GAAGN,EAAE,gBAAiB,MAAI;;AAAC,OAAA6E,IAAAjC,EAAE,YAAF,QAAAiC,EAAW,gBAAgB;AAAA,IAAkB,GAAG,CAAE,CAAA,GAAE3D,EAAE,2BAAyB,IAAGlB,EAAE,cAAcG,GAAE,EAAC,GAAGe,GAAE,KAAIlB,EAAE,YAAa,CAAAM,MAAG;AAAC,MAAAsC,EAAE,UAAQtC,GAAc,OAAOqD,KAAnB,aAAqBA,EAAErD,CAAC,IAASqD,MAAP,SAAWA,EAAE,UAAQrD;AAAA,IAAE,GAAG,CAACqD,CAAC,CAAC,EAAC,CAAC;AAAA,EAAC,CAAC;AAAG,SAAOA,EAAE,cAAYlD,KAAGD,EAAE,MAAKmD;AAAC,GCJlrCtD,KAAI,CAAC;AAAA,EACT,qBAAqB;AAAA,EACrB,GAAGsD;AACL,OAAO,OAAO,IAAI,OAAO,EAAC,GAAIvD,GAAEuD,CAAC,ICqDpBiqB,KAAsO4H,gBAAAA,GAAA;AAAA,EAC/O,SAAS;AAAA,EACT,cAAcC;AAAAA;AAAAA,EAEd,OAAOja;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqBka;AACzB,CAAC,GAqCYzC,KAAwMuC,gBAAAA,GAAA;AAAA,EACjN,SAAS;AAAA,EACT,cAAcG;AAAAA;AAAAA,EAEd,OAAOna;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqBoa;AACzB,CAAC,GAQYnC,KAA8L+B,gBAAAA,GAAA;AAAA,EACvM,SAAS;AAAA,EACT,cAAcK;AAAAA;AAAAA,EAEd,OAAOra;AAAAA,EACP,QAAQ;AAAA,IACJ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA,EACA,qBAAqBsa;AACzB,CAAC,GAeYnC,KAAmM6B,gBAAAA,GAAA;AAAA,EAC5M,SAAS;AAAA,EACT,cAAcO;AAAAA;AAAAA,EAEd,OAAOva;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqBwa;AACzB,CAAC,GAIYnC,KAAkN2B,gBAAAA,GAAA;AAAA,EAC3N,SAAS;AAAA,EACT,cAAcS;AAAAA;AAAAA,EAEd,OAAOza;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqB0a;AACzB,CAAC,GAIYtB,KAAwMY,gBAAAA,GAAA;AAAA,EACjN,SAAS;AAAA,EACT,cAAcW;AAAAA;AAAAA,EAEd,OAAO3a;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqB4a;AACzB,CAAC,GA0BYtB,KAAwMU,gBAAAA,GAAA;AAAA,EACjN,SAAS;AAAA,EACT,cAAca;AAAAA;AAAAA,EAEd,OAAO7a;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqB8a;AACzB,CAAC,GAIYpB,KAAqPM,gBAAAA,GAAA;AAAA,EAC9P,SAAS;AAAA,EACT,cAAce;AAAAA;AAAAA,EAEd,OAAO/a;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqBgb;AACzB,CAAC,GA0BYjB,KAA0KC,gBAAAA,GAAA;AAAA,EACnL,SAAS;AAAA,EACT,cAAciB;AAAAA;AAAAA,EAEd,OAAOjb;AAAAA,EACP,QAAQ,CAAC;AAAA,EACT,qBAAqBkb;AACzB,CAAC,GClNK9I,KAAsE,CAC1E/W,MACI,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCXrBoc,KAA0D,CAACpc,MAC9D,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCmBlB4c,KAAsD,CAAC5c,MAC1D,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCpBlBgd,KAA8D,CAAChd,MAClE,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCMlB+d,KAA0D,CAAC/d,MAC9D,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCJlBie,KAA0D,CAACje,MAC9D,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCTlB0e,KAA8C,CAAC1e,MAClD,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCGlB8c,KAAwD,CAAC9c,MAC5D,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA,GCJlBqe,KAEF,CAACre,MAAW,gBAAA8f,GAAA/f,IAAA,EAAW,GAAGC,EAAO,CAAA;AClB9B,MAAM+f,WAAoBC,GAAgB;AAAA,EAC/C,YAAY9c,GAA2B;AACrC,UAAMA,GAAQ;AAAA,MACZ,SAAS+c,GAAY;AAAA,MACrB,YAAYA,GAAY;AAAA,IAAA,CACzB;AAAA,EAAA;AAEL;","x_google_ignoreList":[27,28]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../core-sdk/dist/index.js","../../javascript-sdk/dist/components/p-5365011f.js","../../javascript-sdk/dist/components/p-6d8b0ead.js","../../javascript-sdk/dist/components/p-05872320.js","../../javascript-sdk/dist/components/searchcraft-ad.js","../../javascript-sdk/dist/components/p-6104fe5d.js","../../javascript-sdk/dist/components/p-cd9ba361.js","../../javascript-sdk/dist/components/searchcraft-base-search-result.js","../../javascript-sdk/dist/components/p-d9551738.js","../../javascript-sdk/dist/components/p-0e393fe1.js","../../javascript-sdk/dist/components/searchcraft-base-search-results.js","../../javascript-sdk/dist/components/p-5cdc6210.js","../../javascript-sdk/dist/components/p-71cc28c1.js","../../javascript-sdk/dist/components/searchcraft-button.js","../../javascript-sdk/dist/components/searchcraft-error-message.js","../../javascript-sdk/dist/components/p-7777d986.js","../../javascript-sdk/dist/components/searchcraft-facet-list.js","../../javascript-sdk/dist/components/p-bb12ab5a.js","../../javascript-sdk/dist/components/p-11b05b94.js","../../javascript-sdk/dist/components/searchcraft-filter-panel.js","../../javascript-sdk/dist/components/p-e55a7970.js","../../javascript-sdk/dist/components/p-5bd5c3cb.js","../../javascript-sdk/dist/components/searchcraft-input-form.js","../../javascript-sdk/dist/components/searchcraft-input-label.js","../../javascript-sdk/dist/components/searchcraft-pagination.js","../../javascript-sdk/dist/components/searchcraft-popover-button.js","../../javascript-sdk/dist/components/p-3568414f.js","../../javascript-sdk/dist/components/p-b0bc5cee.js","../../javascript-sdk/dist/components/searchcraft-popover-form.js","../../javascript-sdk/dist/components/searchcraft-popover-list-item.js","../../javascript-sdk/dist/components/searchcraft-popover-list-view.js","../../javascript-sdk/dist/components/searchcraft-results-info.js","../../javascript-sdk/dist/components/p-bf6a086a.js","../../javascript-sdk/dist/components/searchcraft-search-results-per-page.js","../../javascript-sdk/dist/components/searchcraft-select.js","../../javascript-sdk/dist/components/searchcraft-slider.js","../../javascript-sdk/dist/components/searchcraft-theme.js","../../javascript-sdk/dist/components/searchcraft-toggle-button.js","../../javascript-sdk/dist/components/defineCustomElements.js","../../../node_modules/@lit/react/create-component.js","../../../node_modules/@stencil/react-output-target/dist/react.js","../src/stencil-web-components/components.ts","../src/components/SearchcraftBaseSearchResults.tsx","../src/components/SearchcraftFilterPanel.tsx","../src/components/SearchcraftInputForm.tsx","../src/components/SearchcraftPopoverButton.tsx","../src/components/SearchcraftPopoverForm.tsx","../src/components/SearchcraftResultsInfo.tsx","../src/components/SearchcraftTheme.tsx","../src/components/SearchcraftPagination.tsx","../src/components/SearchcraftSearchResultsPerPage.tsx","../src/index.ts"],"sourcesContent":["var L = Object.defineProperty;\nvar q = (n, t, r) => t in n ? L(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar h = (n, t, r) => q(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nvar F = /* @__PURE__ */ ((n) => (n[n.DEBUG = 0] = \"DEBUG\", n[n.INFO = 1] = \"INFO\", n[n.WARN = 2] = \"WARN\", n[n.ERROR = 3] = \"ERROR\", n))(F || {});\nclass pe {\n constructor(t) {\n h(this, \"logLevel\");\n h(this, \"logFormatter\");\n this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(t, r) {\n return `[${F[t]}] ${(/* @__PURE__ */ new Date()).toISOString()}: ${r}`;\n }\n debug(t) {\n this.logLevel <= 0 && console.log(this.logFormatter(0, t));\n }\n info(t) {\n this.logLevel <= 1 && console.info(this.logFormatter(1, t));\n }\n warn(t) {\n this.logLevel <= 2 && console.warn(this.logFormatter(2, t));\n }\n error(t) {\n this.logLevel <= 3 && console.error(this.logFormatter(3, t));\n }\n log(t, r) {\n switch (t) {\n case 0:\n this.debug(r);\n break;\n case 1:\n this.info(r);\n break;\n case 2:\n this.warn(r);\n break;\n case 3:\n this.error(r);\n break;\n }\n }\n}\nfunction w(n, t, r, o) {\n return new (r || (r = Promise))(function(a, i) {\n function e(u) {\n try {\n l(o.next(u));\n } catch (s) {\n i(s);\n }\n }\n function c(u) {\n try {\n l(o.throw(u));\n } catch (s) {\n i(s);\n }\n }\n function l(u) {\n var s;\n u.done ? a(u.value) : (s = u.value, s instanceof r ? s : new r(function(g) {\n g(s);\n })).then(e, c);\n }\n l((o = o.apply(n, [])).next());\n });\n}\nfunction y(n, t) {\n var r, o, a, i, e = { label: 0, sent: function() {\n if (1 & a[0]) throw a[1];\n return a[1];\n }, trys: [], ops: [] };\n return i = { next: c(0), throw: c(1), return: c(2) }, typeof Symbol == \"function\" && (i[Symbol.iterator] = function() {\n return this;\n }), i;\n function c(l) {\n return function(u) {\n return function(s) {\n if (r) throw new TypeError(\"Generator is already executing.\");\n for (; i && (i = 0, s[0] && (e = 0)), e; ) try {\n if (r = 1, o && (a = 2 & s[0] ? o.return : s[0] ? o.throw || ((a = o.return) && a.call(o), 0) : o.next) && !(a = a.call(o, s[1])).done) return a;\n switch (o = 0, a && (s = [2 & s[0], a.value]), s[0]) {\n case 0:\n case 1:\n a = s;\n break;\n case 4:\n return e.label++, { value: s[1], done: !1 };\n case 5:\n e.label++, o = s[1], s = [0];\n continue;\n case 7:\n s = e.ops.pop(), e.trys.pop();\n continue;\n default:\n if (a = e.trys, !((a = a.length > 0 && a[a.length - 1]) || s[0] !== 6 && s[0] !== 2)) {\n e = 0;\n continue;\n }\n if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) {\n e.label = s[1];\n break;\n }\n if (s[0] === 6 && e.label < a[1]) {\n e.label = a[1], a = s;\n break;\n }\n if (a && e.label < a[2]) {\n e.label = a[2], e.ops.push(s);\n break;\n }\n a[2] && e.ops.pop(), e.trys.pop();\n continue;\n }\n s = t.call(n, e);\n } catch (g) {\n s = [6, g], o = 0;\n } finally {\n r = a = 0;\n }\n if (5 & s[0]) throw s[1];\n return { value: s[0] ? s[1] : void 0, done: !0 };\n }([l, u]);\n };\n }\n}\nvar b = { exclude: [] }, O = {}, N = { timeout: \"true\" }, v = function(n, t) {\n typeof window < \"u\" && (O[n] = t);\n}, j = function() {\n return Object.fromEntries(Object.entries(O).filter(function(n) {\n var t, r = n[0];\n return !(!((t = b == null ? void 0 : b.exclude) === null || t === void 0) && t.includes(r));\n }).map(function(n) {\n return [n[0], (0, n[1])()];\n }));\n};\nfunction M(n) {\n return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, n = Math.imul(n, 3266489909), (n ^= n >>> 16) >>> 0;\n}\nvar f = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);\nfunction p(n, t) {\n return n << t | n >>> 32 - t;\n}\nfunction I(n, t) {\n var r;\n if (t === void 0 && (t = 0), t = t ? 0 | t : 0, typeof n == \"string\" && (r = n, n = new TextEncoder().encode(r).buffer), !(n instanceof ArrayBuffer)) throw new TypeError(\"Expected key to be ArrayBuffer or string\");\n var o = new Uint32Array([t, t, t, t]);\n (function(i, e) {\n for (var c = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * c), u = 0; u < c; u++) {\n var s = l.subarray(4 * u, 4 * (u + 1));\n s[0] = Math.imul(s[0], f[0]), s[0] = p(s[0], 15), s[0] = Math.imul(s[0], f[1]), e[0] = e[0] ^ s[0], e[0] = p(e[0], 19), e[0] = e[0] + e[1], e[0] = Math.imul(e[0], 5) + 1444728091, s[1] = Math.imul(s[1], f[1]), s[1] = p(s[1], 16), s[1] = Math.imul(s[1], f[2]), e[1] = e[1] ^ s[1], e[1] = p(e[1], 17), e[1] = e[1] + e[2], e[1] = Math.imul(e[1], 5) + 197830471, s[2] = Math.imul(s[2], f[2]), s[2] = p(s[2], 17), s[2] = Math.imul(s[2], f[3]), e[2] = e[2] ^ s[2], e[2] = p(e[2], 15), e[2] = e[2] + e[3], e[2] = Math.imul(e[2], 5) + 2530024501, s[3] = Math.imul(s[3], f[3]), s[3] = p(s[3], 18), s[3] = Math.imul(s[3], f[0]), e[3] = e[3] ^ s[3], e[3] = p(e[3], 13), e[3] = e[3] + e[0], e[3] = Math.imul(e[3], 5) + 850148119;\n }\n })(n, o), function(i, e) {\n var c = i.byteLength / 16 | 0, l = i.byteLength % 16, u = new Uint32Array(4), s = new Uint8Array(i, 16 * c, l);\n switch (l) {\n case 15:\n u[3] = u[3] ^ s[14] << 16;\n case 14:\n u[3] = u[3] ^ s[13] << 8;\n case 13:\n u[3] = u[3] ^ s[12] << 0, u[3] = Math.imul(u[3], f[3]), u[3] = p(u[3], 18), u[3] = Math.imul(u[3], f[0]), e[3] = e[3] ^ u[3];\n case 12:\n u[2] = u[2] ^ s[11] << 24;\n case 11:\n u[2] = u[2] ^ s[10] << 16;\n case 10:\n u[2] = u[2] ^ s[9] << 8;\n case 9:\n u[2] = u[2] ^ s[8] << 0, u[2] = Math.imul(u[2], f[2]), u[2] = p(u[2], 17), u[2] = Math.imul(u[2], f[3]), e[2] = e[2] ^ u[2];\n case 8:\n u[1] = u[1] ^ s[7] << 24;\n case 7:\n u[1] = u[1] ^ s[6] << 16;\n case 6:\n u[1] = u[1] ^ s[5] << 8;\n case 5:\n u[1] = u[1] ^ s[4] << 0, u[1] = Math.imul(u[1], f[1]), u[1] = p(u[1], 16), u[1] = Math.imul(u[1], f[2]), e[1] = e[1] ^ u[1];\n case 4:\n u[0] = u[0] ^ s[3] << 24;\n case 3:\n u[0] = u[0] ^ s[2] << 16;\n case 2:\n u[0] = u[0] ^ s[1] << 8;\n case 1:\n u[0] = u[0] ^ s[0] << 0, u[0] = Math.imul(u[0], f[0]), u[0] = p(u[0], 15), u[0] = Math.imul(u[0], f[1]), e[0] = e[0] ^ u[0];\n }\n }(n, o), function(i, e) {\n e[0] = e[0] ^ i.byteLength, e[1] = e[1] ^ i.byteLength, e[2] = e[2] ^ i.byteLength, e[3] = e[3] ^ i.byteLength, e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0, e[0] = M(e[0]), e[1] = M(e[1]), e[2] = M(e[2]), e[3] = M(e[3]), e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0;\n }(n, o);\n var a = new Uint8Array(o.buffer);\n return Array.from(a).map(function(i) {\n return i.toString(16).padStart(2, \"0\");\n }).join(\"\");\n}\nfunction G(n, t) {\n return new Promise(function(r) {\n setTimeout(function() {\n return r(t);\n }, n);\n });\n}\nfunction W(n, t, r) {\n return Promise.all(n.map(function(o) {\n return Promise.race([o, G(t, r)]);\n }));\n}\nfunction V() {\n return w(this, void 0, void 0, function() {\n var n, t, r, o, a;\n return y(this, function(i) {\n switch (i.label) {\n case 0:\n return i.trys.push([0, 2, , 3]), n = j(), t = Object.keys(n), [4, W(Object.values(n), (b == null ? void 0 : b.timeout) || 1e3, N)];\n case 1:\n return r = i.sent(), o = r.filter(function(e) {\n return e !== void 0;\n }), a = {}, o.forEach(function(e, c) {\n a[t[c]] = e;\n }), [2, U(a, b.exclude || [])];\n case 2:\n throw i.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction U(n, t) {\n var r = {}, o = function(i) {\n if (n.hasOwnProperty(i)) {\n var e = n[i];\n if (typeof e != \"object\" || Array.isArray(e)) t.includes(i) || (r[i] = e);\n else {\n var c = U(e, t.map(function(l) {\n return l.startsWith(i + \".\") ? l.slice(i.length + 1) : l;\n }));\n Object.keys(c).length > 0 && (r[i] = c);\n }\n }\n };\n for (var a in n) o(a);\n return r;\n}\nfunction $(n) {\n return w(this, void 0, void 0, function() {\n var t, r;\n return y(this, function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2, , 3]), [4, V()];\n case 1:\n return t = o.sent(), r = I(JSON.stringify(t)), [2, r.toString()];\n case 2:\n throw o.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction H(n) {\n for (var t = 0, r = 0; r < n.length; ++r) t += Math.abs(n[r]);\n return t;\n}\nfunction D(n, t, r) {\n for (var o = [], a = 0; a < n[0].data.length; a++) {\n for (var i = [], e = 0; e < n.length; e++) i.push(n[e].data[a]);\n o.push(z(i));\n }\n var c = new Uint8ClampedArray(o);\n return new ImageData(c, t, r);\n}\nfunction z(n) {\n if (n.length === 0) return 0;\n for (var t = {}, r = 0, o = n; r < o.length; r++)\n t[i = o[r]] = (t[i] || 0) + 1;\n var a = n[0];\n for (var i in t) t[i] > t[a] && (a = parseInt(i, 10));\n return a;\n}\nfunction E() {\n if (typeof navigator > \"u\") return { name: \"unknown\", version: \"unknown\" };\n for (var n = navigator.userAgent, t = { Edg: \"Edge\", OPR: \"Opera\" }, r = 0, o = [/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/]; r < o.length; r++) {\n var a = o[r], i = n.match(a);\n if (i && i.groups) return { name: t[i.groups.name] || i.groups.name, version: i.groups.version };\n }\n return { name: \"unknown\", version: \"unknown\" };\n}\nv(\"audio\", function() {\n return w(this, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, new Promise(function(t, r) {\n try {\n var o = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), a = o.createBufferSource(), i = o.createOscillator();\n i.frequency.value = 1e3;\n var e, c = o.createDynamicsCompressor();\n c.threshold.value = -50, c.knee.value = 40, c.ratio.value = 12, c.attack.value = 0, c.release.value = 0.2, i.connect(c), c.connect(o.destination), i.start(), o.oncomplete = function(l) {\n e = l.renderedBuffer.getChannelData(0), t({ sampleHash: H(e), oscillator: i.type, maxChannels: o.destination.maxChannelCount, channelCountMode: a.channelCountMode });\n }, o.startRendering();\n } catch (l) {\n console.error(\"Error creating audio fingerprint:\", l), r(l);\n }\n })];\n });\n });\n});\nvar K = E().name !== \"SamsungBrowser\" ? 1 : 3, k = 280, _ = 20;\nE().name != \"Firefox\" && v(\"canvas\", function() {\n return document.createElement(\"canvas\").getContext(\"2d\"), new Promise(function(n) {\n var t = Array.from({ length: K }, function() {\n return function() {\n var r = document.createElement(\"canvas\"), o = r.getContext(\"2d\");\n if (!o) return new ImageData(1, 1);\n r.width = k, r.height = _;\n var a = o.createLinearGradient(0, 0, r.width, r.height);\n a.addColorStop(0, \"red\"), a.addColorStop(0.16666666666666666, \"orange\"), a.addColorStop(0.3333333333333333, \"yellow\"), a.addColorStop(0.5, \"green\"), a.addColorStop(0.6666666666666666, \"blue\"), a.addColorStop(0.8333333333333334, \"indigo\"), a.addColorStop(1, \"violet\"), o.fillStyle = a, o.fillRect(0, 0, r.width, r.height);\n var i = \"Random Text WMwmil10Oo\";\n o.font = \"23.123px Arial\", o.fillStyle = \"black\", o.fillText(i, -5, 15), o.fillStyle = \"rgba(0, 0, 255, 0.5)\", o.fillText(i, -3.3, 17.7), o.beginPath(), o.moveTo(0, 0), o.lineTo(2 * r.width / 7, r.height), o.strokeStyle = \"white\", o.lineWidth = 2, o.stroke();\n var e = o.getImageData(0, 0, r.width, r.height);\n return e;\n }();\n });\n n({ commonImageDataHash: I(D(t, k, _).data.toString()).toString() });\n });\n});\nvar C, Q = [\"Arial\", \"Arial Black\", \"Arial Narrow\", \"Arial Rounded MT\", \"Arimo\", \"Archivo\", \"Barlow\", \"Bebas Neue\", \"Bitter\", \"Bookman\", \"Calibri\", \"Cabin\", \"Candara\", \"Century\", \"Century Gothic\", \"Comic Sans MS\", \"Constantia\", \"Courier\", \"Courier New\", \"Crimson Text\", \"DM Mono\", \"DM Sans\", \"DM Serif Display\", \"DM Serif Text\", \"Dosis\", \"Droid Sans\", \"Exo\", \"Fira Code\", \"Fira Sans\", \"Franklin Gothic Medium\", \"Garamond\", \"Geneva\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Inconsolata\", \"Indie Flower\", \"Inter\", \"Josefin Sans\", \"Karla\", \"Lato\", \"Lexend\", \"Lucida Bright\", \"Lucida Console\", \"Lucida Sans Unicode\", \"Manrope\", \"Merriweather\", \"Merriweather Sans\", \"Montserrat\", \"Myriad\", \"Noto Sans\", \"Nunito\", \"Nunito Sans\", \"Open Sans\", \"Optima\", \"Orbitron\", \"Oswald\", \"Pacifico\", \"Palatino\", \"Perpetua\", \"PT Sans\", \"PT Serif\", \"Poppins\", \"Prompt\", \"Public Sans\", \"Quicksand\", \"Rajdhani\", \"Recursive\", \"Roboto\", \"Roboto Condensed\", \"Rockwell\", \"Rubik\", \"Segoe Print\", \"Segoe Script\", \"Segoe UI\", \"Sora\", \"Source Sans Pro\", \"Space Mono\", \"Tahoma\", \"Taviraj\", \"Times\", \"Times New Roman\", \"Titillium Web\", \"Trebuchet MS\", \"Ubuntu\", \"Varela Round\", \"Verdana\", \"Work Sans\"], J = [\"monospace\", \"sans-serif\", \"serif\"];\nfunction P(n, t) {\n if (!n) throw new Error(\"Canvas context not supported\");\n return n.font, n.font = \"72px \".concat(t), n.measureText(\"WwMmLli0Oo\").width;\n}\nfunction Y() {\n var n, t = document.createElement(\"canvas\"), r = (n = t.getContext(\"webgl\")) !== null && n !== void 0 ? n : t.getContext(\"experimental-webgl\");\n if (r && \"getParameter\" in r) try {\n var o = (r.getParameter(r.VENDOR) || \"\").toString(), a = (r.getParameter(r.RENDERER) || \"\").toString(), i = { vendor: o, renderer: a, version: (r.getParameter(r.VERSION) || \"\").toString(), shadingLanguageVersion: (r.getParameter(r.SHADING_LANGUAGE_VERSION) || \"\").toString() };\n if (!a.length || !o.length) {\n var e = r.getExtension(\"WEBGL_debug_renderer_info\");\n if (e) {\n var c = (r.getParameter(e.UNMASKED_VENDOR_WEBGL) || \"\").toString(), l = (r.getParameter(e.UNMASKED_RENDERER_WEBGL) || \"\").toString();\n c && (i.vendorUnmasked = c), l && (i.rendererUnmasked = l);\n }\n }\n return i;\n } catch {\n }\n return \"undefined\";\n}\nfunction X() {\n var n = new Float32Array(1), t = new Uint8Array(n.buffer);\n return n[0] = 1 / 0, n[0] = n[0] - n[0], t[3];\n}\nfunction Z(n, t) {\n var r = {};\n return t.forEach(function(o) {\n var a = function(i) {\n if (i.length === 0) return null;\n var e = {};\n i.forEach(function(u) {\n var s = String(u);\n e[s] = (e[s] || 0) + 1;\n });\n var c = i[0], l = 1;\n return Object.keys(e).forEach(function(u) {\n e[u] > l && (c = u, l = e[u]);\n }), c;\n }(n.map(function(i) {\n return o in i ? i[o] : void 0;\n }).filter(function(i) {\n return i !== void 0;\n }));\n a && (r[o] = a);\n }), r;\n}\nfunction ee() {\n var n = [], t = { \"prefers-contrast\": [\"high\", \"more\", \"low\", \"less\", \"forced\", \"no-preference\"], \"any-hover\": [\"hover\", \"none\"], \"any-pointer\": [\"none\", \"coarse\", \"fine\"], pointer: [\"none\", \"coarse\", \"fine\"], hover: [\"hover\", \"none\"], update: [\"fast\", \"slow\"], \"inverted-colors\": [\"inverted\", \"none\"], \"prefers-reduced-motion\": [\"reduce\", \"no-preference\"], \"prefers-reduced-transparency\": [\"reduce\", \"no-preference\"], scripting: [\"none\", \"initial-only\", \"enabled\"], \"forced-colors\": [\"active\", \"none\"] };\n return Object.keys(t).forEach(function(r) {\n t[r].forEach(function(o) {\n matchMedia(\"(\".concat(r, \": \").concat(o, \")\")).matches && n.push(\"\".concat(r, \": \").concat(o));\n });\n }), n;\n}\nfunction te() {\n if (window.location.protocol === \"https:\" && typeof window.ApplePaySession == \"function\") try {\n for (var n = window.ApplePaySession.supportsVersion, t = 15; t > 0; t--) if (n(t)) return t;\n } catch {\n return 0;\n }\n return 0;\n}\nE().name != \"Firefox\" && v(\"fonts\", function() {\n var n = this;\n return new Promise(function(t, r) {\n try {\n (function(o) {\n var a;\n w(this, void 0, void 0, function() {\n var i, e, c;\n return y(this, function(l) {\n switch (l.label) {\n case 0:\n return document.body ? [3, 2] : [4, (u = 50, new Promise(function(g) {\n return setTimeout(g, u, s);\n }))];\n case 1:\n return l.sent(), [3, 0];\n case 2:\n if ((i = document.createElement(\"iframe\")).setAttribute(\"frameBorder\", \"0\"), (e = i.style).setProperty(\"position\", \"fixed\"), e.setProperty(\"display\", \"block\", \"important\"), e.setProperty(\"visibility\", \"visible\"), e.setProperty(\"border\", \"0\"), e.setProperty(\"opacity\", \"0\"), i.src = \"about:blank\", document.body.appendChild(i), !(c = i.contentDocument || ((a = i.contentWindow) === null || a === void 0 ? void 0 : a.document))) throw new Error(\"Iframe document is not accessible\");\n return o({ iframe: c }), setTimeout(function() {\n document.body.removeChild(i);\n }, 0), [2];\n }\n var u, s;\n });\n });\n })(function(o) {\n var a = o.iframe;\n return w(n, void 0, void 0, function() {\n var i, e, c, l;\n return y(this, function(u) {\n return i = a.createElement(\"canvas\"), e = i.getContext(\"2d\"), c = J.map(function(s) {\n return P(e, s);\n }), l = {}, Q.forEach(function(s) {\n var g = P(e, s);\n c.includes(g) || (l[s] = g);\n }), t(l), [2];\n });\n });\n });\n } catch {\n r({ error: \"unsupported\" });\n }\n });\n}), v(\"hardware\", function() {\n return new Promise(function(n, t) {\n var r = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, o = window.performance && window.performance.memory ? window.performance.memory : 0;\n n({ videocard: Y(), architecture: X(), deviceMemory: r.toString() || \"undefined\", jsHeapSizeLimit: o.jsHeapSizeLimit || 0 });\n });\n}), v(\"locales\", function() {\n return new Promise(function(n) {\n n({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });\n });\n}), v(\"permissions\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n return C = (b == null ? void 0 : b.permissions_to_check) || [\"accelerometer\", \"accessibility\", \"accessibility-events\", \"ambient-light-sensor\", \"background-fetch\", \"background-sync\", \"bluetooth\", \"camera\", \"clipboard-read\", \"clipboard-write\", \"device-info\", \"display-capture\", \"gyroscope\", \"geolocation\", \"local-fonts\", \"magnetometer\", \"microphone\", \"midi\", \"nfc\", \"notifications\", \"payment-handler\", \"persistent-storage\", \"push\", \"speaker\", \"storage-access\", \"top-level-storage-access\", \"window-management\", \"query\"], n = Array.from({ length: (b == null ? void 0 : b.retries) || 3 }, function() {\n return function() {\n return w(this, void 0, void 0, function() {\n var r, o, a, i, e;\n return y(this, function(c) {\n switch (c.label) {\n case 0:\n r = {}, o = 0, a = C, c.label = 1;\n case 1:\n if (!(o < a.length)) return [3, 6];\n i = a[o], c.label = 2;\n case 2:\n return c.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];\n case 3:\n return e = c.sent(), r[i] = e.state.toString(), [3, 5];\n case 4:\n return c.sent(), [3, 5];\n case 5:\n return o++, [3, 1];\n case 6:\n return [2, r];\n }\n });\n });\n }();\n }), [2, Promise.all(n).then(function(r) {\n return Z(r, C);\n })];\n });\n });\n}), v(\"plugins\", function() {\n var n = [];\n if (navigator.plugins) for (var t = 0; t < navigator.plugins.length; t++) {\n var r = navigator.plugins[t];\n n.push([r.name, r.filename, r.description].join(\"|\"));\n }\n return new Promise(function(o) {\n o({ plugins: n });\n });\n}), v(\"screen\", function() {\n return new Promise(function(n) {\n n({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });\n });\n}), v(\"system\", function() {\n return new Promise(function(n) {\n var t = E();\n n({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: t.name, version: t.version }, applePayVersion: te() });\n });\n});\nvar m, ne = E().name !== \"SamsungBrowser\" ? 1 : 3, d = null;\nv(\"webgl\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n typeof document < \"u\" && ((m = document.createElement(\"canvas\")).width = 200, m.height = 100, d = m.getContext(\"webgl\"));\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n return n = Array.from({ length: ne }, function() {\n return function() {\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n var r = `\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `, o = `\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n `, a = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);\n if (!a || !i) throw new Error(\"Failed to create shaders\");\n if (d.shaderSource(a, r), d.shaderSource(i, o), d.compileShader(a), !d.getShaderParameter(a, d.COMPILE_STATUS)) throw new Error(\"Vertex shader compilation failed: \" + d.getShaderInfoLog(a));\n if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error(\"Fragment shader compilation failed: \" + d.getShaderInfoLog(i));\n var e = d.createProgram();\n if (!e) throw new Error(\"Failed to create shader program\");\n if (d.attachShader(e, a), d.attachShader(e, i), d.linkProgram(e), !d.getProgramParameter(e, d.LINK_STATUS)) throw new Error(\"Shader program linking failed: \" + d.getProgramInfoLog(e));\n d.useProgram(e);\n for (var c = 137, l = new Float32Array(4 * c), u = 2 * Math.PI / c, s = 0; s < c; s++) {\n var g = s * u;\n l[4 * s] = 0, l[4 * s + 1] = 0, l[4 * s + 2] = Math.cos(g) * (m.width / 2), l[4 * s + 3] = Math.sin(g) * (m.height / 2);\n }\n var B = d.createBuffer();\n d.bindBuffer(d.ARRAY_BUFFER, B), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);\n var x = d.getAttribLocation(e, \"position\");\n d.enableVertexAttribArray(x), d.vertexAttribPointer(x, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, m.width, m.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * c);\n var T = new Uint8ClampedArray(m.width * m.height * 4);\n return d.readPixels(0, 0, m.width, m.height, d.RGBA, d.UNSIGNED_BYTE, T), new ImageData(T, m.width, m.height);\n } catch {\n return new ImageData(1, 1);\n } finally {\n d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));\n }\n }();\n }), [2, { commonImageHash: I(D(n, m.width, m.height).data.toString()).toString() }];\n } catch {\n return [2, { webgl: \"unsupported\" }];\n }\n return [2];\n });\n });\n});\nvar S = function(n, t, r, o) {\n for (var a = (r - t) / o, i = 0, e = 0; e < o; e++)\n i += n(t + (e + 0.5) * a);\n return i * a;\n};\nv(\"math\", function() {\n return w(void 0, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, { acos: Math.acos(0.5), asin: S(Math.asin, -1, 1, 97), atan: S(Math.atan, -1, 1, 97), cos: S(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: S(Math.sin, -Math.PI, Math.PI, 97), sinh: S(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: S(Math.tan, 0, 2 * Math.PI, 97), tanh: S(Math.tanh, -9 / 7, 7 / 9, 97) }];\n });\n });\n});\nconst re = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet A = (n = 21) => {\n let t = \"\", r = crypto.getRandomValues(new Uint8Array(n |= 0));\n for (; n--; )\n t += re[r[n] & 63];\n return t;\n};\nclass R {\n constructor(t) {\n h(this, \"config\");\n this.config = t;\n }\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass oe extends R {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAdsForSearchParams(t) {\n if (!this.config.admSub)\n return console.error(\"No admSub specified in config.\"), [];\n const o = `https://demofeed.is.ampfeed.com/is?${new URLSearchParams({\n partner: \"demofeed\",\n sub1: this.config.admSub,\n qt: t.searchTerm,\n v: \"2.0\",\n rfr: \"searchcraft.io\",\n \"results-ta\": `${this.config.admTextAdQuantity || 0}`,\n \"results-pa\": `${this.config.admProductAdQuantity || 0}`\n }).toString()}`, i = await (await fetch(o, { method: \"GET\" })).json(), e = i.product_ads.map(\n (u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-product-ad\",\n admAd: u\n })\n ), c = i.text_ads.map((u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-text-ad\",\n admAd: u\n }));\n return e.concat(c);\n }\n}\nclass ie extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass ae extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nconst se = 500;\nclass ue {\n constructor(t, r, o) {\n h(this, \"measureRequestTimeout\");\n h(this, \"measureRequestsBatched\", []);\n h(this, \"config\");\n h(this, \"sdkInfo\");\n h(this, \"userId\");\n h(this, \"sessionId\");\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n h(this, \"sendMeasureEvent\", (t, r = {}, o = {}) => {\n const a = {\n event_name: t,\n properties: {\n searchcraft_index_names: this.config.index,\n session_id: this.sessionId,\n ...r\n },\n user: {\n ...this.measureRequestUser,\n ...o\n }\n };\n this.measureRequestsBatched.push(a), clearTimeout(this.measureRequestTimeout), this.measureRequestTimeout = setTimeout(async () => {\n const i = JSON.stringify({ items: this.measureRequestsBatched }), e = `${this.baseMeasureUrl}/batch`;\n try {\n const c = await fetch(e, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: this.config.readKey,\n \"X-Sc-User-Id\": this.userId\n },\n body: i,\n keepalive: !0\n });\n if (!c.ok)\n throw new Error(\n `Failed to send request: ${c.status} ${c.statusText}`\n );\n this.measureRequestsBatched = [];\n return;\n } catch (c) {\n throw console.error(\"Error sending MeasureRequest:\", c), c;\n }\n }, se);\n });\n this.config = t, this.sdkInfo = r, this.userId = o, this.sessionId = A(), this.sendMeasureEvent(\"sdk_initialized\");\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || \"en-US\",\n os: navigator.userAgent.includes(\"Windows\") ? \"Windows\" : navigator.userAgent.includes(\"Mac\") ? \"Mac\" : navigator.userAgent.includes(\"Linux\") ? \"Linux\" : \"Unknown\",\n platform: navigator.platform || \"Unknown\",\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || \"Unknown\"\n };\n }\n}\nfunction ce(n) {\n const t = [];\n let r = \"should\";\n return n.facetPathsForIndexFields && Object.keys(n.facetPathsForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.facetPathsForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.rangeValueForIndexFields && Object.keys(n.rangeValueForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.rangeValueForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.sort === \"desc\" ? n.order_by = \"date_published\" : n.order_by = \"\", t.push({\n occur: r,\n // Valid, as 'occur' is a required property in QueryItem\n [n.mode]: { ctx: n.searchTerm }\n // Ensure dynamic mode is inside queryType\n }), t;\n}\nconst de = (n) => n.endsWith(\"/\") ? n.slice(0, -1) : n, le = (n) => {\n let t = \"\";\n if (t = n.trim(), t = t.replace(/[‘’“”]/g, (o) => ({\n \"‘\": \"'\",\n \"’\": \"'\",\n \"“\": '\"',\n \"”\": '\"'\n })[o] || o), (t.match(/\"/g) || []).length % 2 !== 0)\n throw new Error(\n \"The search term contains an uneven number of quote characters.\"\n );\n return t;\n};\nclass he {\n constructor(t, r, o) {\n h(this, \"config\");\n h(this, \"userId\");\n h(this, \"parent\");\n /**\n * Performs a search operation.\n * @param {SearchParams} searchParams - The parameters for the search.\n */\n h(this, \"getSearchResponse\", async (t) => {\n var o, a;\n const r = le(t.searchTerm);\n (o = this.parent.measureClient) == null || o.sendMeasureEvent(\"search_requested\", {\n search_term: r\n }), this.parent.emitEvent(\"query_submitted\", {\n name: \"query_submitted\",\n data: {\n searchTerm: r\n }\n });\n try {\n const i = {\n query: ce(t),\n offset: t.offset || 0,\n // Default to 0 (first page) if not provided\n limit: t.limit || this.config.searchResultsPerPage || 20\n // Default to 20 if not provided\n };\n t.order_by && (i.order_by = t.order_by, i.sort = t.sort === \"desc\" || t.sort === \"asc\" ? t.sort : \"asc\");\n const e = {\n method: \"POST\",\n headers: {\n Authorization: this.config.readKey,\n \"Content-Type\": \"application/json\",\n \"X-Sc-User-Id\": this.userId\n },\n body: JSON.stringify(i)\n }, c = await fetch(this.baseSearchUrl, e);\n if (!c.ok)\n throw new Error(\n `Error: ${c.statusText} (Status: ${c.status})`\n );\n const l = await c.json();\n return (a = this.parent.measureClient) == null || a.sendMeasureEvent(\"search_response_received\", {\n search_term: r,\n number_of_documents: l.data.count\n }), l;\n } catch (i) {\n throw console.error(\"Error parsing response:\", i), i;\n }\n });\n this.parent = t, this.config = r, this.userId = o;\n }\n /**\n * Getter for the base url used by the /search endpoint.\n */\n get baseSearchUrl() {\n return `${this.config.endpointURL}/index/${this.config.index.join(\",\")}/search`;\n }\n}\nclass ge {\n constructor(t, r) {\n h(this, \"config\");\n h(this, \"measureClient\");\n h(this, \"searchClient\");\n h(this, \"adClient\");\n h(this, \"userId\");\n h(this, \"requestTimeout\");\n h(this, \"subscriptionEvents\", {});\n /**\n * Gets items from the SearchClient and the AdClient.\n */\n h(this, \"getItems\", (t, r, o) => {\n const a = async () => {\n (async () => {\n var c, l;\n const i = await ((c = this == null ? void 0 : this.searchClient) == null ? void 0 : c.getSearchResponse(t));\n if (!i)\n throw new Error(\"Search client was not initialized.\");\n const e = (l = i.data.hits || []) == null ? void 0 : l.map((u) => u.doc).filter((u) => !!u).map((u) => ({\n type: \"SearchDocument\",\n id: A(),\n document: u\n }));\n e.length === 0 && this.emitEvent(\"no_results_returned\", {\n name: \"no_results_returned\"\n }), r(i, e);\n })(), (async () => {\n if (this.adClient) {\n const i = await this.adClient.getAdsForSearchParams(t);\n o(i);\n }\n })();\n };\n clearTimeout(this.requestTimeout), this.config.searchDebounceDelay ? this.requestTimeout = setTimeout(\n a,\n this.config.searchDebounceDelay\n ) : a();\n });\n if (!t.endpointURL || !t.index || !t.readKey)\n throw new Error(\n \"Endpoint URL, Index value(s), and Read Key must be provided\"\n );\n this.config = {\n ...t,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: de(t.endpointURL)\n }, this.userId = \"\", this.initClients(this.config, r), this.initInputForms(), this.startObservingMutations();\n }\n initInputForms() {\n const t = document.querySelectorAll(\n \"searchcraft-input-form\"\n );\n setTimeout(() => {\n t.forEach((r) => {\n r.core = this;\n });\n }, 40);\n }\n /**\n * When changes happen in the DOM, we want to link any input forms found to the instance of the core.\n */\n startObservingMutations() {\n new MutationObserver((r, o) => {\n let a = !1;\n for (const i of r)\n i.type === \"childList\" && i.addedNodes.forEach((e) => {\n e.nodeType === 1 && e.className.toLowerCase() === \"searchcraft-input-form\" && (a = !0);\n });\n a && this.initInputForms();\n }).observe(document.body, { childList: !0, subtree: !0 });\n }\n initClients(t, r) {\n setTimeout(async () => {\n let o = this.config.userId;\n switch (o || (o = await $()), this.measureClient = new ue(t, r, o), this.searchClient = new he(this, t, o), t.adSource) {\n case \"adMarketplace\":\n this.adClient = new oe(t);\n break;\n case \"Nativo\":\n this.adClient = new ae(t);\n break;\n case \"Custom\":\n this.adClient = new ie(t);\n break;\n }\n }, 300);\n }\n emitEvent(t, r) {\n var o;\n (o = this.subscriptionEvents[t]) == null || o.forEach((a) => {\n a(r);\n });\n }\n subscribe(t, r) {\n return this.subscriptionEvents[t] || (this.subscriptionEvents[t] = []), this.subscriptionEvents[t].push(\n r\n ), () => {\n this.subscriptionEvents[t] = this.subscriptionEvents[t].filter((o) => o !== r);\n };\n }\n}\nexport {\n F as LogLevel,\n pe as Logger,\n ge as SearchcraftCore\n};\n//# sourceMappingURL=index.js.map\n","const NAMESPACE = 'searchcraft-javascript-sdk';\nconst BUILD = /* searchcraft-javascript-sdk */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: false, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: \"hydrated\", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, modernPropertyDecls: true, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: false, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: false, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };\n\n/*\n Stencil Client Platform v4.25.0 | MIT Licensed | https://stenciljs.com\n */\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\n\n// src/utils/es2022-rewire-class-members.ts\nvar reWireGetterSetter = (instance, hostRef) => {\n var _a;\n const cmpMeta = hostRef.$cmpMeta$;\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(instance), memberName);\n Object.defineProperty(instance, memberName, {\n get() {\n return ogDescriptor.get.call(this);\n },\n set(newValue) {\n ogDescriptor.set.call(this, newValue);\n },\n configurable: true,\n enumerable: true\n });\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\n\n// src/client/client-host-ref.ts\nvar hostRefs = /* @__PURE__ */ new WeakMap();\nvar deleteHostRef = (ref) => hostRefs.delete(ref);\nvar getHostRef = (ref) => hostRefs.get(ref);\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n const ref = hostRefs.set(hostElement, hostRef);\n {\n reWireGetterSetter(hostElement, hostRef);\n }\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\nvar consoleError = (e, el) => (0, console.error)(e, el);\nvar win = typeof window !== \"undefined\" ? window : {};\nvar doc = win.document || { head: {} };\nvar H = win.HTMLElement || class {\n};\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: \"\",\n jmp: (h2) => h2(),\n raf: (h2) => requestAnimationFrame(h2),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nvar supportsShadow = BUILD.shadowDom;\nvar promiseResolve = (v) => Promise.resolve(v);\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nvar consume = (queue) => {\n for (let i2 = 0; i2 < queue.length; i2++) {\n try {\n queue[i2](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar flush = () => {\n consume(queueDomReads);\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\n\n// src/runtime/asset-path.ts\nvar getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nvar setAssetPath = (path) => plt.$resourcesUrl$ = path;\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// src/utils/result.ts\nvar result_exports = {};\n__export(result_exports, {\n err: () => err,\n map: () => map,\n ok: () => ok,\n unwrap: () => unwrap,\n unwrapErr: () => unwrapErr\n});\nvar ok = (value) => ({\n isOk: true,\n isErr: false,\n value\n});\nvar err = (value) => ({\n isOk: false,\n isErr: true,\n value\n});\nfunction map(result, fn) {\n if (result.isOk) {\n const val = fn(result.value);\n if (val instanceof Promise) {\n return val.then((newVal) => ok(newVal));\n } else {\n return ok(val);\n }\n }\n if (result.isErr) {\n const value = result.value;\n return err(value);\n }\n throw \"should never get here\";\n}\nvar unwrap = (result) => {\n if (result.isOk) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar unwrapErr = (result) => {\n if (result.isErr) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar updateFallbackSlotVisibility = (elm) => {\n const childNodes = elm.__childNodes || elm.childNodes;\n if (elm.tagName && elm.tagName.includes(\"-\") && elm[\"s-cr\"] && elm.tagName !== \"SLOT-FB\") {\n getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {\n var _a;\n if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === \"SLOT-FB\") {\n if ((_a = getHostSlotChildNodes(slotNode, slotNode[\"s-sn\"], false)) == null ? void 0 : _a.length) {\n slotNode.hidden = true;\n } else {\n slotNode.hidden = false;\n }\n }\n });\n }\n for (const childNode of childNodes) {\n if (childNode.nodeType === 1 /* ElementNode */ && (childNode.__childNodes || childNode.childNodes).length) {\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nfunction getHostSlotNodes(childNodes, hostName, slotName) {\n let i2 = 0;\n let slottedNodes = [];\n let childNode;\n for (; i2 < childNodes.length; i2++) {\n childNode = childNodes[i2];\n if (childNode[\"s-sr\"] && childNode[\"s-hn\"] === hostName && (slotName === void 0 || childNode[\"s-sn\"] === slotName)) {\n slottedNodes.push(childNode);\n if (typeof slotName !== \"undefined\") return slottedNodes;\n }\n slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];\n }\n return slottedNodes;\n}\nvar getHostSlotChildNodes = (node, slotName, includeSlot = true) => {\n const childNodes = [];\n if (includeSlot && node[\"s-sr\"] || !node[\"s-sr\"]) childNodes.push(node);\n while ((node = node.nextSibling) && node[\"s-sn\"] === slotName) {\n childNodes.push(node);\n }\n return childNodes;\n};\nvar isNodeLocatedInSlot = (nodeToRelocate, slotName) => {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute(\"slot\") === null && slotName === \"\") {\n return true;\n }\n if (nodeToRelocate.getAttribute(\"slot\") === slotName) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate[\"s-sn\"] === slotName) {\n return true;\n }\n return slotName === \"\";\n};\nvar createTime = (fnName, tagName = \"\") => {\n {\n return () => {\n return;\n };\n }\n};\nvar h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i2 = 0; i2 < c.length; i2++) {\n child = c[i2];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== \"boolean\") {\n if (simple = typeof nodeName !== \"function\" && !isComplexType(child)) {\n child = String(child);\n }\n if (simple && lastSimple) {\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== \"object\" ? classData : Object.keys(classData).filter((k) => classData[k]).join(\" \");\n }\n }\n }\n if (typeof nodeName === \"function\") {\n return nodeName(\n vnodeData === null ? {} : vnodeData,\n vNodeChildren,\n vdomFnUtils\n );\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = (node) => node && node.$tag$ === Host;\nvar vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate)\n};\nvar convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$\n});\nvar convertToPrivate = (node) => {\n if (typeof node.vtag === \"function\") {\n const vnodeData = { ...node.vattrs };\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...node.vchildren || []);\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\nvar parsePropertyValue = (propValue, propType) => {\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n if (propType & 2 /* Number */) {\n return parseFloat(propValue);\n }\n if (propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\nvar getElement = (ref) => ref;\n\n// src/runtime/event-emitter.ts\nvar createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail\n });\n }\n };\n};\nvar emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n if (elm[\"s-si\"]) {\n newClasses.push(elm[\"s-si\"]);\n oldClasses.forEach((c) => {\n if (c.startsWith(elm[\"s-si\"])) newClasses.push(c);\n });\n newClasses = [...new Set(newClasses)];\n classList.add(...newClasses);\n delete elm[\"s-si\"];\n } else {\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n } else if (memberName === \"style\") {\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes(\"-\")) {\n elm.style.removeProperty(prop);\n } else {\n elm.style[prop] = \"\";\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (memberName === \"key\") ; else if ((!elm.__lookupSetter__(memberName)) && memberName[0] === \"o\" && memberName[1] === \"n\") {\n if (memberName[2] === \"-\") {\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n memberName = ln.slice(2);\n } else {\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue || newValue) {\n const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);\n memberName = memberName.replace(CAPTURE_EVENT_REGEX, \"\");\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, capture);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, capture);\n }\n }\n } else {\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes(\"-\")) {\n const n = newValue == null ? \"\" : newValue;\n if (memberName === \"list\") {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n if (typeof elm.__lookupSetter__(memberName) === \"function\") {\n elm[memberName] = n;\n } else {\n elm.setAttribute(memberName, n);\n }\n }\n } else if (elm[memberName] !== newValue) {\n elm[memberName] = newValue;\n }\n } catch (e) {\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? \"\" : newValue;\n {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = (value) => {\n if (typeof value === \"object\" && \"baseVal\" in value) {\n value = value.baseVal;\n }\n if (!value) {\n return [];\n }\n return value.split(parseClassListRegex);\n};\nvar CAPTURE_EVENT_SUFFIX = \"Capture\";\nvar CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + \"$\");\n\n// src/runtime/vdom/update-element.ts\nvar updateElement = (oldVnode, newVnode, isSvgMode2) => {\n const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};\n const newVnodeAttrs = newVnode.$attrs$ || {};\n {\n for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], void 0, isSvgMode2, newVnode.$flags$);\n }\n }\n }\n for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode2, newVnode.$flags$);\n }\n};\nfunction sortedAttrNames(attrNames) {\n return attrNames.includes(\"ref\") ? (\n // we need to sort these to ensure that `'ref'` is the last attr\n [...attrNames.filter((attr) => attr !== \"ref\"), \"ref\"]\n ) : (\n // no need to sort, return the original array\n attrNames\n );\n}\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar createElm = (oldParentVNode, newParentVNode, childIndex) => {\n var _a;\n const newVNode2 = newParentVNode.$children$[childIndex];\n let i2 = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (!useNativeShadowDom) {\n checkSlotRelocate = true;\n if (newVNode2.$tag$ === \"slot\") {\n newVNode2.$flags$ |= newVNode2.$children$ ? (\n // slot element has fallback content\n // still create an element that \"mocks\" the slot element\n 2 /* isSlotFallback */\n ) : (\n // slot element does not have fallback content\n // create an html comment we'll use to always reference\n // where actual slot content should sit next to\n 1 /* isSlotReference */\n );\n }\n }\n if (newVNode2.$text$ !== null) {\n elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);\n } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {\n elm = newVNode2.$elm$ = doc.createTextNode(\"\");\n } else {\n if (!isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n elm = newVNode2.$elm$ = doc.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? \"slot-fb\" : newVNode2.$tag$\n ) ;\n if (isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n {\n updateElement(null, newVNode2, isSvgMode);\n }\n if (newVNode2.$children$) {\n for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {\n childNode = createElm(oldParentVNode, newVNode2, i2);\n if (childNode) {\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode2.$tag$ === \"svg\") {\n isSvgMode = false;\n } else if (elm.tagName === \"foreignObject\") {\n isSvgMode = true;\n }\n }\n }\n elm[\"s-hn\"] = hostTagName;\n {\n if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n elm[\"s-sr\"] = true;\n elm[\"s-cr\"] = contentRef;\n elm[\"s-sn\"] = newVNode2.$name$ || \"\";\n elm[\"s-rf\"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {\n {\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);\n if (parentElm[\"s-sr\"] && BUILD.experimentalSlotFixes) {\n let node = parentElm;\n while (node = node.nextSibling) {\n if (node && node[\"s-sn\"] === parentElm[\"s-sn\"] && node[\"s-sh\"] === hostTagName) {\n oldSlotChildNodes.push(node);\n }\n }\n }\n for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {\n const childNode = oldSlotChildNodes[i2];\n if (childNode[\"s-hn\"] !== hostTagName && childNode[\"s-ol\"]) {\n insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));\n childNode[\"s-ol\"].remove();\n childNode[\"s-ol\"] = void 0;\n childNode[\"s-sh\"] = void 0;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm[\"s-cr\"] && parentElm[\"s-cr\"].parentNode || parentElm;\n let childNode;\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n insertBefore(containerElm, childNode, referenceNode(before) );\n }\n }\n }\n};\nvar removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n if (elm) {\n {\n checkSlotFallbackVisibility = true;\n if (elm[\"s-ol\"]) {\n elm[\"s-ol\"].remove();\n } else {\n putBackInOriginalLocation(elm, true);\n }\n }\n elm.remove();\n }\n }\n }\n};\nvar updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i2 = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {\n patch(oldStartVnode, newStartVnode, isInitialRender);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {\n patch(oldEndVnode, newEndVnode, isInitialRender);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {\n if ((oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode, isInitialRender);\n insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {\n if ((oldStartVnode.$tag$ === \"slot\" || newEndVnode.$tag$ === \"slot\")) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode, isInitialRender);\n insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n idxInOld = -1;\n {\n for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {\n if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {\n idxInOld = i2;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);\n } else {\n patch(elmToMove, newStartVnode, isInitialRender);\n oldCh[idxInOld] = void 0;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n } else {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n insertBefore(\n referenceNode(oldStartVnode.$elm$).parentNode,\n node,\n referenceNode(oldStartVnode.$elm$)\n );\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(\n parentElm,\n newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,\n newVNode2,\n newCh,\n newStartIdx,\n newEndIdx\n );\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (leftVNode.$tag$ === \"slot\") {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n if (!isInitialRender) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {\n leftVNode.$key$ = rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nvar referenceNode = (node) => node && node[\"s-ol\"] || node;\nvar patch = (oldVNode, newVNode2, isInitialRender = false) => {\n const elm = newVNode2.$elm$ = oldVNode.$elm$;\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode2.$children$;\n const tag = newVNode2.$tag$;\n const text = newVNode2.$text$;\n let defaultHolder;\n if (text === null) {\n {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n {\n if (tag === \"slot\" && !useNativeShadowDom) ; else {\n updateElement(oldVNode, newVNode2, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n if (oldVNode.$text$ !== null) {\n elm.textContent = \"\";\n }\n addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);\n } else if (\n // don't do this on initial render as it can cause non-hydrated content to be removed\n !isInitialRender && BUILD.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n } else if ((defaultHolder = elm[\"s-cr\"])) {\n defaultHolder.parentNode.textContent = text;\n } else if (oldVNode.$text$ !== text) {\n elm.data = text;\n }\n};\nvar relocateNodes = [];\nvar markSlotContentForRelocation = (elm) => {\n let node;\n let hostContentNodes;\n let j;\n const children = elm.__childNodes || elm.childNodes;\n for (const childNode of children) {\n if (childNode[\"s-sr\"] && (node = childNode[\"s-cr\"]) && node.parentNode) {\n hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;\n const slotName = childNode[\"s-sn\"];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node[\"s-cn\"] && !node[\"s-nr\"] && node[\"s-hn\"] !== childNode[\"s-hn\"] && (!BUILD.experimentalSlotFixes )) {\n if (isNodeLocatedInSlot(node, slotName)) {\n let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n checkSlotFallbackVisibility = true;\n node[\"s-sn\"] = node[\"s-sn\"] || slotName;\n if (relocateNodeData) {\n relocateNodeData.$nodeToRelocate$[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodeData.$slotRefNode$ = childNode;\n } else {\n node[\"s-sh\"] = childNode[\"s-hn\"];\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node\n });\n }\n if (node[\"s-sr\"]) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node[\"s-sn\"])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n relocateNodes.push({\n $nodeToRelocate$: node\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n markSlotContentForRelocation(childNode);\n }\n }\n};\nvar insertBefore = (parent, newNode, reference) => {\n {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n var _a, _b, _c, _d;\n const hostElm = hostRef.$hostElement$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n if (hostElm.hasAttribute(key) && ![\"key\", \"ref\", \"style\", \"class\"].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = hostElm;\n useNativeShadowDom = supportsShadow ;\n {\n contentRef = hostElm[\"s-cr\"];\n checkSlotFallbackVisibility = false;\n }\n patch(oldVNode, rootVnode, isInitialLoad);\n {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n markSlotContentForRelocation(rootVnode.$elm$);\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate[\"s-ol\"]) {\n const orgLocationNode = doc.createTextNode(\"\");\n orgLocationNode[\"s-nr\"] = nodeToRelocate;\n insertBefore(nodeToRelocate.parentNode, nodeToRelocate[\"s-ol\"] = orgLocationNode, nodeToRelocate);\n }\n }\n for (const relocateData of relocateNodes) {\n const nodeToRelocate = relocateData.$nodeToRelocate$;\n const slotRefNode = relocateData.$slotRefNode$;\n if (slotRefNode) {\n const parentNodeRef = slotRefNode.parentNode;\n let insertBeforeNode = slotRefNode.nextSibling;\n {\n let orgLocationNode = (_a = nodeToRelocate[\"s-ol\"]) == null ? void 0 : _a.previousSibling;\n while (orgLocationNode) {\n let refNode = (_b = orgLocationNode[\"s-nr\"]) != null ? _b : null;\n if (refNode && refNode[\"s-sn\"] === nodeToRelocate[\"s-sn\"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {\n refNode = refNode.nextSibling;\n while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode[\"s-sr\"])) {\n refNode = refNode == null ? void 0 : refNode.nextSibling;\n }\n if (!refNode || !refNode[\"s-nr\"]) {\n insertBeforeNode = refNode;\n break;\n }\n }\n orgLocationNode = orgLocationNode.previousSibling;\n }\n }\n const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;\n const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;\n if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate[\"s-hn\"] && nodeToRelocate[\"s-ol\"]) {\n nodeToRelocate[\"s-hn\"] = nodeToRelocate[\"s-ol\"].parentNode.nodeName;\n }\n insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);\n if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== \"SLOT-FB\") {\n nodeToRelocate.hidden = (_c = nodeToRelocate[\"s-ih\"]) != null ? _c : false;\n }\n }\n }\n nodeToRelocate && typeof slotRefNode[\"s-rf\"] === \"function\" && slotRefNode[\"s-rf\"](nodeToRelocate);\n } else {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (isInitialLoad) {\n nodeToRelocate[\"s-ih\"] = (_d = nodeToRelocate.hidden) != null ? _d : false;\n }\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n relocateNodes.length = 0;\n }\n contentRef = void 0;\n};\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent[\"s-p\"]) {\n const index = ancestorComponent[\"s-p\"].push(\n new Promise(\n (r) => hostRef.$onRenderResolve$ = () => {\n ancestorComponent[\"s-p\"].splice(index - 1, 1);\n r();\n }\n )\n );\n }\n};\nvar scheduleUpdate = (hostRef, isInitialLoad) => {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return writeTask(dispatch) ;\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = elm;\n if (!instance) {\n throw new Error(\n `Can't render component <${elm.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\`externalRuntime: true\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`\n );\n }\n let maybePromise;\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nvar enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {\n console.error(err2);\n fn();\n}) : fn();\nvar isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === \"function\";\nvar updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime(\"update\", hostRef.$cmpMeta$.$tagName$);\n const rc = elm[\"s-rc\"];\n const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n {\n const childrenPromises = (_a = elm[\"s-p\"]) != null ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n } else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n {\n {\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n } else {\n endPostUpdate();\n }\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = void 0;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n};\nvar appDidLoad = (who) => {\n {\n addHydratedFlag(doc.documentElement);\n }\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n};\nvar safeCall = (instance, method, arg, elm) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n } catch (e) {\n consoleError(e, elm);\n }\n }\n return void 0;\n};\nvar addHydratedFlag = (elm) => {\n var _a;\n return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : \"hydrated\") ;\n};\n\n// src/runtime/set-value.ts\nvar getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nvar setValue = (ref, propName, newVal, cmpMeta) => {\n const hostRef = getHostRef(ref);\n const elm = ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if (didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n {\n if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n watchMethods.map((watchMethodName) => {\n try {\n instance[watchMethodName](newVal, oldVal, propName);\n } catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n\n// src/runtime/proxy-component.ts\nvar proxyComponent = (Cstr, cmpMeta, flags) => {\n var _a, _b;\n const prototype = Cstr.prototype;\n if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {\n if (Cstr.watchers && !cmpMeta.$watchers$) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};\n if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;\n if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;\n if (flags & 1 /* isElementConstructor */ || !origGetter) {\n Object.defineProperty(prototype, memberName, {\n get() {\n {\n return origGetter ? origGetter.apply(this) : getValue(this, memberName);\n }\n },\n configurable: true,\n enumerable: true\n });\n }\n Object.defineProperty(prototype, memberName, {\n set(newValue) {\n const ref = getHostRef(this);\n if (origSetter) {\n const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n if (typeof currentValue === \"undefined\" && ref.$instanceValues$.get(memberName)) {\n newValue = ref.$instanceValues$.get(memberName);\n } else if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n {\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n }\n });\n }\n });\n {\n const attrNameToPropName = /* @__PURE__ */ new Map();\n prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {\n plt.jmp(() => {\n var _a2;\n const propName = attrNameToPropName.get(attrName);\n if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {\n newValue = this[propName];\n delete this[propName];\n } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === \"number\" && // cast type to number to avoid TS compiler issues\n this[propName] == newValue) {\n return;\n } else if (propName == null) {\n const hostRef = getHostRef(this);\n const flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (flags2 && !(flags2 & 8 /* isConstructingInstance */) && flags2 & 128 /* isWatchReady */ && newValue !== oldValue) {\n const elm = this;\n const instance = elm;\n const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];\n entry == null ? void 0 : entry.forEach((callbackName) => {\n if (instance[callbackName] != null) {\n instance[callbackName].call(instance, newValue, oldValue, attrName);\n }\n });\n }\n return;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\n newValue = newValue === null && typeof this[propName] === \"boolean\" ? false : newValue;\n if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {\n this[propName] = newValue;\n }\n });\n };\n Cstr.observedAttributes = Array.from(\n /* @__PURE__ */ new Set([\n ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),\n ...members.filter(([_, m]) => m[0] & 15 /* HasAttribute */).map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n })\n ])\n );\n }\n }\n return Cstr;\n};\n\n// src/runtime/initialize-component.ts\nvar initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {\n if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n {\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field\n cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {\n setContentReference(elm);\n }\n }\n {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (ancestorComponent[\"s-p\"]) {\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef);\n }\n } else {\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback());\n }\n }\n endConnected();\n }\n};\nvar setContentReference = (elm) => {\n const contentRefElm = elm[\"s-cr\"] = doc.createComment(\n \"\"\n );\n contentRefElm[\"s-cn\"] = true;\n insertBefore(elm, contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n getHostRef(elm);\n }\n if (rootAppliedStyles.has(elm)) {\n rootAppliedStyles.delete(elm);\n }\n if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {\n rootAppliedStyles.delete(elm.shadowRoot);\n }\n};\nvar proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1]\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __hasHostListenerAttached: false,\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n if (!this.__hasHostListenerAttached) {\n getHostRef(this);\n this.__hasHostListenerAttached = true;\n }\n connectedCallback(this);\n if (originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n plt.raf(() => {\n var _a;\n const hostRef = getHostRef(this);\n if (((_a = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$;\n }\n if (this instanceof Node && !this.isConnected) {\n deleteHostRef(this);\n }\n });\n },\n __attachShadow() {\n {\n this.shadowRoot = this;\n }\n }\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */);\n};\n\n// src/runtime/fragment.ts\nvar Fragment = (_, children) => children;\n\n// src/runtime/nonce.ts\nvar setNonce = (nonce) => plt.$nonce$ = nonce;\n\n// src/runtime/platform-options.ts\nvar setPlatformOptions = (opts) => Object.assign(plt, opts);\n\nexport { Fragment as F, H, setNonce as a, setPlatformOptions as b, createEvent as c, getAssetPath as g, h, proxyCustomElement as p, setAssetPath as s };\n\n//# sourceMappingURL=p-5365011f.js.map","var L = Object.defineProperty;\nvar q = (n, t, r) => t in n ? L(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar h = (n, t, r) => q(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nvar F = /* @__PURE__ */ ((n) => (n[n.DEBUG = 0] = \"DEBUG\", n[n.INFO = 1] = \"INFO\", n[n.WARN = 2] = \"WARN\", n[n.ERROR = 3] = \"ERROR\", n))(F || {});\nclass pe {\n constructor(t) {\n h(this, \"logLevel\");\n h(this, \"logFormatter\");\n this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(t, r) {\n return `[${F[t]}] ${( new Date()).toISOString()}: ${r}`;\n }\n debug(t) {\n this.logLevel <= 0 && console.log(this.logFormatter(0, t));\n }\n info(t) {\n this.logLevel <= 1 && console.info(this.logFormatter(1, t));\n }\n warn(t) {\n this.logLevel <= 2 && console.warn(this.logFormatter(2, t));\n }\n error(t) {\n this.logLevel <= 3 && console.error(this.logFormatter(3, t));\n }\n log(t, r) {\n switch (t) {\n case 0:\n this.debug(r);\n break;\n case 1:\n this.info(r);\n break;\n case 2:\n this.warn(r);\n break;\n case 3:\n this.error(r);\n break;\n }\n }\n}\nfunction w(n, t, r, o) {\n return new (r || (r = Promise))(function(a, i) {\n function e(u) {\n try {\n l(o.next(u));\n } catch (s) {\n i(s);\n }\n }\n function c(u) {\n try {\n l(o.throw(u));\n } catch (s) {\n i(s);\n }\n }\n function l(u) {\n var s;\n u.done ? a(u.value) : (s = u.value, s instanceof r ? s : new r(function(g) {\n g(s);\n })).then(e, c);\n }\n l((o = o.apply(n, [])).next());\n });\n}\nfunction y(n, t) {\n var r, o, a, i, e = { label: 0, sent: function() {\n if (1 & a[0]) throw a[1];\n return a[1];\n }, trys: [], ops: [] };\n return i = { next: c(0), throw: c(1), return: c(2) }, typeof Symbol == \"function\" && (i[Symbol.iterator] = function() {\n return this;\n }), i;\n function c(l) {\n return function(u) {\n return function(s) {\n if (r) throw new TypeError(\"Generator is already executing.\");\n for (; i && (i = 0, s[0] && (e = 0)), e; ) try {\n if (r = 1, o && (a = 2 & s[0] ? o.return : s[0] ? o.throw || ((a = o.return) && a.call(o), 0) : o.next) && !(a = a.call(o, s[1])).done) return a;\n switch (o = 0, a && (s = [2 & s[0], a.value]), s[0]) {\n case 0:\n case 1:\n a = s;\n break;\n case 4:\n return e.label++, { value: s[1], done: !1 };\n case 5:\n e.label++, o = s[1], s = [0];\n continue;\n case 7:\n s = e.ops.pop(), e.trys.pop();\n continue;\n default:\n if (a = e.trys, !((a = a.length > 0 && a[a.length - 1]) || s[0] !== 6 && s[0] !== 2)) {\n e = 0;\n continue;\n }\n if (s[0] === 3 && (!a || s[1] > a[0] && s[1] < a[3])) {\n e.label = s[1];\n break;\n }\n if (s[0] === 6 && e.label < a[1]) {\n e.label = a[1], a = s;\n break;\n }\n if (a && e.label < a[2]) {\n e.label = a[2], e.ops.push(s);\n break;\n }\n a[2] && e.ops.pop(), e.trys.pop();\n continue;\n }\n s = t.call(n, e);\n } catch (g) {\n s = [6, g], o = 0;\n } finally {\n r = a = 0;\n }\n if (5 & s[0]) throw s[1];\n return { value: s[0] ? s[1] : void 0, done: !0 };\n }([l, u]);\n };\n }\n}\nvar b = { exclude: [] }, O = {}, N = { timeout: \"true\" }, v = function(n, t) {\n typeof window < \"u\" && (O[n] = t);\n}, j = function() {\n return Object.fromEntries(Object.entries(O).filter(function(n) {\n var t, r = n[0];\n return !(!((t = b == null ? void 0 : b.exclude) === null || t === void 0) && t.includes(r));\n }).map(function(n) {\n return [n[0], (0, n[1])()];\n }));\n};\nfunction M(n) {\n return n ^= n >>> 16, n = Math.imul(n, 2246822507), n ^= n >>> 13, n = Math.imul(n, 3266489909), (n ^= n >>> 16) >>> 0;\n}\nvar f = new Uint32Array([597399067, 2869860233, 951274213, 2716044179]);\nfunction p(n, t) {\n return n << t | n >>> 32 - t;\n}\nfunction I(n, t) {\n var r;\n if (t === void 0 && (t = 0), t = t ? 0 | t : 0, typeof n == \"string\" && (r = n, n = new TextEncoder().encode(r).buffer), !(n instanceof ArrayBuffer)) throw new TypeError(\"Expected key to be ArrayBuffer or string\");\n var o = new Uint32Array([t, t, t, t]);\n ((function(i, e) {\n for (var c = i.byteLength / 16 | 0, l = new Uint32Array(i, 0, 4 * c), u = 0; u < c; u++) {\n var s = l.subarray(4 * u, 4 * (u + 1));\n s[0] = Math.imul(s[0], f[0]), s[0] = p(s[0], 15), s[0] = Math.imul(s[0], f[1]), e[0] = e[0] ^ s[0], e[0] = p(e[0], 19), e[0] = e[0] + e[1], e[0] = Math.imul(e[0], 5) + 1444728091, s[1] = Math.imul(s[1], f[1]), s[1] = p(s[1], 16), s[1] = Math.imul(s[1], f[2]), e[1] = e[1] ^ s[1], e[1] = p(e[1], 17), e[1] = e[1] + e[2], e[1] = Math.imul(e[1], 5) + 197830471, s[2] = Math.imul(s[2], f[2]), s[2] = p(s[2], 17), s[2] = Math.imul(s[2], f[3]), e[2] = e[2] ^ s[2], e[2] = p(e[2], 15), e[2] = e[2] + e[3], e[2] = Math.imul(e[2], 5) + 2530024501, s[3] = Math.imul(s[3], f[3]), s[3] = p(s[3], 18), s[3] = Math.imul(s[3], f[0]), e[3] = e[3] ^ s[3], e[3] = p(e[3], 13), e[3] = e[3] + e[0], e[3] = Math.imul(e[3], 5) + 850148119;\n }\n }))(n, o), function(i, e) {\n var c = i.byteLength / 16 | 0, l = i.byteLength % 16, u = new Uint32Array(4), s = new Uint8Array(i, 16 * c, l);\n switch (l) {\n case 15:\n u[3] = u[3] ^ s[14] << 16;\n case 14:\n u[3] = u[3] ^ s[13] << 8;\n case 13:\n u[3] = u[3] ^ s[12] << 0, u[3] = Math.imul(u[3], f[3]), u[3] = p(u[3], 18), u[3] = Math.imul(u[3], f[0]), e[3] = e[3] ^ u[3];\n case 12:\n u[2] = u[2] ^ s[11] << 24;\n case 11:\n u[2] = u[2] ^ s[10] << 16;\n case 10:\n u[2] = u[2] ^ s[9] << 8;\n case 9:\n u[2] = u[2] ^ s[8] << 0, u[2] = Math.imul(u[2], f[2]), u[2] = p(u[2], 17), u[2] = Math.imul(u[2], f[3]), e[2] = e[2] ^ u[2];\n case 8:\n u[1] = u[1] ^ s[7] << 24;\n case 7:\n u[1] = u[1] ^ s[6] << 16;\n case 6:\n u[1] = u[1] ^ s[5] << 8;\n case 5:\n u[1] = u[1] ^ s[4] << 0, u[1] = Math.imul(u[1], f[1]), u[1] = p(u[1], 16), u[1] = Math.imul(u[1], f[2]), e[1] = e[1] ^ u[1];\n case 4:\n u[0] = u[0] ^ s[3] << 24;\n case 3:\n u[0] = u[0] ^ s[2] << 16;\n case 2:\n u[0] = u[0] ^ s[1] << 8;\n case 1:\n u[0] = u[0] ^ s[0] << 0, u[0] = Math.imul(u[0], f[0]), u[0] = p(u[0], 15), u[0] = Math.imul(u[0], f[1]), e[0] = e[0] ^ u[0];\n }\n }(n, o), function(i, e) {\n e[0] = e[0] ^ i.byteLength, e[1] = e[1] ^ i.byteLength, e[2] = e[2] ^ i.byteLength, e[3] = e[3] ^ i.byteLength, e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0, e[0] = M(e[0]), e[1] = M(e[1]), e[2] = M(e[2]), e[3] = M(e[3]), e[0] = e[0] + e[1] | 0, e[0] = e[0] + e[2] | 0, e[0] = e[0] + e[3] | 0, e[1] = e[1] + e[0] | 0, e[2] = e[2] + e[0] | 0, e[3] = e[3] + e[0] | 0;\n }(n, o);\n var a = new Uint8Array(o.buffer);\n return Array.from(a).map(function(i) {\n return i.toString(16).padStart(2, \"0\");\n }).join(\"\");\n}\nfunction G(n, t) {\n return new Promise(function(r) {\n setTimeout(function() {\n return r(t);\n }, n);\n });\n}\nfunction W(n, t, r) {\n return Promise.all(n.map(function(o) {\n return Promise.race([o, G(t, r)]);\n }));\n}\nfunction V() {\n return w(this, void 0, void 0, function() {\n var n, t, r, o, a;\n return y(this, function(i) {\n switch (i.label) {\n case 0:\n return i.trys.push([0, 2, , 3]), n = j(), t = Object.keys(n), [4, W(Object.values(n), (b == null ? void 0 : b.timeout) || 1e3, N)];\n case 1:\n return r = i.sent(), o = r.filter(function(e) {\n return e !== void 0;\n }), a = {}, o.forEach(function(e, c) {\n a[t[c]] = e;\n }), [2, U(a, b.exclude || [])];\n case 2:\n throw i.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction U(n, t) {\n var r = {}, o = function(i) {\n if (n.hasOwnProperty(i)) {\n var e = n[i];\n if (typeof e != \"object\" || Array.isArray(e)) t.includes(i) || (r[i] = e);\n else {\n var c = U(e, t.map(function(l) {\n return l.startsWith(i + \".\") ? l.slice(i.length + 1) : l;\n }));\n Object.keys(c).length > 0 && (r[i] = c);\n }\n }\n };\n for (var a in n) o(a);\n return r;\n}\nfunction $(n) {\n return w(this, void 0, void 0, function() {\n var t, r;\n return y(this, function(o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2, , 3]), [4, V()];\n case 1:\n return t = o.sent(), r = I(JSON.stringify(t)), [2, r.toString()];\n case 2:\n throw o.sent();\n case 3:\n return [2];\n }\n });\n });\n}\nfunction H(n) {\n for (var t = 0, r = 0; r < n.length; ++r) t += Math.abs(n[r]);\n return t;\n}\nfunction D(n, t, r) {\n for (var o = [], a = 0; a < n[0].data.length; a++) {\n for (var i = [], e = 0; e < n.length; e++) i.push(n[e].data[a]);\n o.push(z(i));\n }\n var c = new Uint8ClampedArray(o);\n return new ImageData(c, t, r);\n}\nfunction z(n) {\n if (n.length === 0) return 0;\n for (var t = {}, r = 0, o = n; r < o.length; r++)\n t[i = o[r]] = (t[i] || 0) + 1;\n var a = n[0];\n for (var i in t) t[i] > t[a] && (a = parseInt(i, 10));\n return a;\n}\nfunction E() {\n if (typeof navigator > \"u\") return { name: \"unknown\", version: \"unknown\" };\n for (var n = navigator.userAgent, t = { Edg: \"Edge\", OPR: \"Opera\" }, r = 0, o = [/(?<name>Edge|Edg)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Chrome|Chromium|OPR|Opera|Vivaldi|Brave))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>(?:Firefox|Waterfox|Iceweasel|IceCat))\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>Safari)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>MSIE|Trident|IEMobile).+?(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>[A-Za-z]+)\\/(?<version>\\d+(?:\\.\\d+)?)/, /(?<name>SamsungBrowser)\\/(?<version>\\d+(?:\\.\\d+)?)/]; r < o.length; r++) {\n var a = o[r], i = n.match(a);\n if (i && i.groups) return { name: t[i.groups.name] || i.groups.name, version: i.groups.version };\n }\n return { name: \"unknown\", version: \"unknown\" };\n}\nv(\"audio\", function() {\n return w(this, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, new Promise(function(t, r) {\n try {\n var o = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 5e3, 44100), a = o.createBufferSource(), i = o.createOscillator();\n i.frequency.value = 1e3;\n var e, c = o.createDynamicsCompressor();\n c.threshold.value = -50, c.knee.value = 40, c.ratio.value = 12, c.attack.value = 0, c.release.value = 0.2, i.connect(c), c.connect(o.destination), i.start(), o.oncomplete = function(l) {\n e = l.renderedBuffer.getChannelData(0), t({ sampleHash: H(e), oscillator: i.type, maxChannels: o.destination.maxChannelCount, channelCountMode: a.channelCountMode });\n }, o.startRendering();\n } catch (l) {\n console.error(\"Error creating audio fingerprint:\", l), r(l);\n }\n })];\n });\n });\n});\nvar K = E().name !== \"SamsungBrowser\" ? 1 : 3, k = 280, _ = 20;\nE().name != \"Firefox\" && v(\"canvas\", function() {\n return document.createElement(\"canvas\").getContext(\"2d\"), new Promise(function(n) {\n var t = Array.from({ length: K }, function() {\n return function() {\n var r = document.createElement(\"canvas\"), o = r.getContext(\"2d\");\n if (!o) return new ImageData(1, 1);\n r.width = k, r.height = _;\n var a = o.createLinearGradient(0, 0, r.width, r.height);\n a.addColorStop(0, \"red\"), a.addColorStop(0.16666666666666666, \"orange\"), a.addColorStop(0.3333333333333333, \"yellow\"), a.addColorStop(0.5, \"green\"), a.addColorStop(0.6666666666666666, \"blue\"), a.addColorStop(0.8333333333333334, \"indigo\"), a.addColorStop(1, \"violet\"), o.fillStyle = a, o.fillRect(0, 0, r.width, r.height);\n var i = \"Random Text WMwmil10Oo\";\n o.font = \"23.123px Arial\", o.fillStyle = \"black\", o.fillText(i, -5, 15), o.fillStyle = \"rgba(0, 0, 255, 0.5)\", o.fillText(i, -3.3, 17.7), o.beginPath(), o.moveTo(0, 0), o.lineTo(2 * r.width / 7, r.height), o.strokeStyle = \"white\", o.lineWidth = 2, o.stroke();\n var e = o.getImageData(0, 0, r.width, r.height);\n return e;\n }();\n });\n n({ commonImageDataHash: I(D(t, k, _).data.toString()).toString() });\n });\n});\nvar C, Q = [\"Arial\", \"Arial Black\", \"Arial Narrow\", \"Arial Rounded MT\", \"Arimo\", \"Archivo\", \"Barlow\", \"Bebas Neue\", \"Bitter\", \"Bookman\", \"Calibri\", \"Cabin\", \"Candara\", \"Century\", \"Century Gothic\", \"Comic Sans MS\", \"Constantia\", \"Courier\", \"Courier New\", \"Crimson Text\", \"DM Mono\", \"DM Sans\", \"DM Serif Display\", \"DM Serif Text\", \"Dosis\", \"Droid Sans\", \"Exo\", \"Fira Code\", \"Fira Sans\", \"Franklin Gothic Medium\", \"Garamond\", \"Geneva\", \"Georgia\", \"Gill Sans\", \"Helvetica\", \"Impact\", \"Inconsolata\", \"Indie Flower\", \"Inter\", \"Josefin Sans\", \"Karla\", \"Lato\", \"Lexend\", \"Lucida Bright\", \"Lucida Console\", \"Lucida Sans Unicode\", \"Manrope\", \"Merriweather\", \"Merriweather Sans\", \"Montserrat\", \"Myriad\", \"Noto Sans\", \"Nunito\", \"Nunito Sans\", \"Open Sans\", \"Optima\", \"Orbitron\", \"Oswald\", \"Pacifico\", \"Palatino\", \"Perpetua\", \"PT Sans\", \"PT Serif\", \"Poppins\", \"Prompt\", \"Public Sans\", \"Quicksand\", \"Rajdhani\", \"Recursive\", \"Roboto\", \"Roboto Condensed\", \"Rockwell\", \"Rubik\", \"Segoe Print\", \"Segoe Script\", \"Segoe UI\", \"Sora\", \"Source Sans Pro\", \"Space Mono\", \"Tahoma\", \"Taviraj\", \"Times\", \"Times New Roman\", \"Titillium Web\", \"Trebuchet MS\", \"Ubuntu\", \"Varela Round\", \"Verdana\", \"Work Sans\"], J = [\"monospace\", \"sans-serif\", \"serif\"];\nfunction P(n, t) {\n if (!n) throw new Error(\"Canvas context not supported\");\n return n.font = \"72px \".concat(t), n.measureText(\"WwMmLli0Oo\").width;\n}\nfunction Y() {\n var n, t = document.createElement(\"canvas\"), r = (n = t.getContext(\"webgl\")) !== null && n !== void 0 ? n : t.getContext(\"experimental-webgl\");\n if (r && \"getParameter\" in r) try {\n var o = (r.getParameter(r.VENDOR) || \"\").toString(), a = (r.getParameter(r.RENDERER) || \"\").toString(), i = { vendor: o, renderer: a, version: (r.getParameter(r.VERSION) || \"\").toString(), shadingLanguageVersion: (r.getParameter(r.SHADING_LANGUAGE_VERSION) || \"\").toString() };\n if (!a.length || !o.length) {\n var e = r.getExtension(\"WEBGL_debug_renderer_info\");\n if (e) {\n var c = (r.getParameter(e.UNMASKED_VENDOR_WEBGL) || \"\").toString(), l = (r.getParameter(e.UNMASKED_RENDERER_WEBGL) || \"\").toString();\n c && (i.vendorUnmasked = c), l && (i.rendererUnmasked = l);\n }\n }\n return i;\n } catch {\n }\n return \"undefined\";\n}\nfunction X() {\n var n = new Float32Array(1), t = new Uint8Array(n.buffer);\n return n[0] = 1 / 0, n[0] = n[0] - n[0], t[3];\n}\nfunction Z(n, t) {\n var r = {};\n return t.forEach(function(o) {\n var a = function(i) {\n if (i.length === 0) return null;\n var e = {};\n i.forEach(function(u) {\n var s = String(u);\n e[s] = (e[s] || 0) + 1;\n });\n var c = i[0], l = 1;\n return Object.keys(e).forEach(function(u) {\n e[u] > l && (c = u, l = e[u]);\n }), c;\n }(n.map(function(i) {\n return o in i ? i[o] : void 0;\n }).filter(function(i) {\n return i !== void 0;\n }));\n a && (r[o] = a);\n }), r;\n}\nfunction ee() {\n var n = [], t = { \"prefers-contrast\": [\"high\", \"more\", \"low\", \"less\", \"forced\", \"no-preference\"], \"any-hover\": [\"hover\", \"none\"], \"any-pointer\": [\"none\", \"coarse\", \"fine\"], pointer: [\"none\", \"coarse\", \"fine\"], hover: [\"hover\", \"none\"], update: [\"fast\", \"slow\"], \"inverted-colors\": [\"inverted\", \"none\"], \"prefers-reduced-motion\": [\"reduce\", \"no-preference\"], \"prefers-reduced-transparency\": [\"reduce\", \"no-preference\"], scripting: [\"none\", \"initial-only\", \"enabled\"], \"forced-colors\": [\"active\", \"none\"] };\n return Object.keys(t).forEach(function(r) {\n t[r].forEach(function(o) {\n matchMedia(\"(\".concat(r, \": \").concat(o, \")\")).matches && n.push(\"\".concat(r, \": \").concat(o));\n });\n }), n;\n}\nfunction te() {\n if (window.location.protocol === \"https:\" && typeof window.ApplePaySession == \"function\") try {\n for (var n = window.ApplePaySession.supportsVersion, t = 15; t > 0; t--) if (n(t)) return t;\n } catch {\n return 0;\n }\n return 0;\n}\nE().name != \"Firefox\" && v(\"fonts\", function() {\n var n = this;\n return new Promise(function(t, r) {\n try {\n (function(o) {\n var a;\n w(this, void 0, void 0, function() {\n var i, e, c;\n return y(this, function(l) {\n switch (l.label) {\n case 0:\n return document.body ? [3, 2] : [4, (u = 50, new Promise(function(g) {\n return setTimeout(g, u, s);\n }))];\n case 1:\n return l.sent(), [3, 0];\n case 2:\n if ((i = document.createElement(\"iframe\")).setAttribute(\"frameBorder\", \"0\"), (e = i.style).setProperty(\"position\", \"fixed\"), e.setProperty(\"display\", \"block\", \"important\"), e.setProperty(\"visibility\", \"visible\"), e.setProperty(\"border\", \"0\"), e.setProperty(\"opacity\", \"0\"), i.src = \"about:blank\", document.body.appendChild(i), !(c = i.contentDocument || ((a = i.contentWindow) === null || a === void 0 ? void 0 : a.document))) throw new Error(\"Iframe document is not accessible\");\n return o({ iframe: c }), setTimeout(function() {\n document.body.removeChild(i);\n }, 0), [2];\n }\n var u, s;\n });\n });\n })(function(o) {\n var a = o.iframe;\n return w(n, void 0, void 0, function() {\n var i, e, c, l;\n return y(this, function(u) {\n return i = a.createElement(\"canvas\"), e = i.getContext(\"2d\"), c = J.map(function(s) {\n return P(e, s);\n }), l = {}, Q.forEach(function(s) {\n var g = P(e, s);\n c.includes(g) || (l[s] = g);\n }), t(l), [2];\n });\n });\n });\n } catch {\n r({ error: \"unsupported\" });\n }\n });\n}), v(\"hardware\", function() {\n return new Promise(function(n, t) {\n var r = navigator.deviceMemory !== void 0 ? navigator.deviceMemory : 0, o = window.performance && window.performance.memory ? window.performance.memory : 0;\n n({ videocard: Y(), architecture: X(), deviceMemory: r.toString() || \"undefined\", jsHeapSizeLimit: o.jsHeapSizeLimit || 0 });\n });\n}), v(\"locales\", function() {\n return new Promise(function(n) {\n n({ languages: navigator.language, timezone: Intl.DateTimeFormat().resolvedOptions().timeZone });\n });\n}), v(\"permissions\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n return C = (b == null ? void 0 : b.permissions_to_check) || [\"accelerometer\", \"accessibility\", \"accessibility-events\", \"ambient-light-sensor\", \"background-fetch\", \"background-sync\", \"bluetooth\", \"camera\", \"clipboard-read\", \"clipboard-write\", \"device-info\", \"display-capture\", \"gyroscope\", \"geolocation\", \"local-fonts\", \"magnetometer\", \"microphone\", \"midi\", \"nfc\", \"notifications\", \"payment-handler\", \"persistent-storage\", \"push\", \"speaker\", \"storage-access\", \"top-level-storage-access\", \"window-management\", \"query\"], n = Array.from({ length: (b == null ? void 0 : b.retries) || 3 }, function() {\n return function() {\n return w(this, void 0, void 0, function() {\n var r, o, a, i, e;\n return y(this, function(c) {\n switch (c.label) {\n case 0:\n r = {}, o = 0, a = C, c.label = 1;\n case 1:\n if (!(o < a.length)) return [3, 6];\n i = a[o], c.label = 2;\n case 2:\n return c.trys.push([2, 4, , 5]), [4, navigator.permissions.query({ name: i })];\n case 3:\n return e = c.sent(), r[i] = e.state.toString(), [3, 5];\n case 4:\n return c.sent(), [3, 5];\n case 5:\n return o++, [3, 1];\n case 6:\n return [2, r];\n }\n });\n });\n }();\n }), [2, Promise.all(n).then(function(r) {\n return Z(r, C);\n })];\n });\n });\n}), v(\"plugins\", function() {\n var n = [];\n if (navigator.plugins) for (var t = 0; t < navigator.plugins.length; t++) {\n var r = navigator.plugins[t];\n n.push([r.name, r.filename, r.description].join(\"|\"));\n }\n return new Promise(function(o) {\n o({ plugins: n });\n });\n}), v(\"screen\", function() {\n return new Promise(function(n) {\n n({ is_touchscreen: navigator.maxTouchPoints > 0, maxTouchPoints: navigator.maxTouchPoints, colorDepth: screen.colorDepth, mediaMatches: ee() });\n });\n}), v(\"system\", function() {\n return new Promise(function(n) {\n var t = E();\n n({ platform: window.navigator.platform, cookieEnabled: window.navigator.cookieEnabled, productSub: navigator.productSub, product: navigator.product, useragent: navigator.userAgent, hardwareConcurrency: navigator.hardwareConcurrency, browser: { name: t.name, version: t.version }, applePayVersion: te() });\n });\n});\nvar m, ne = E().name !== \"SamsungBrowser\" ? 1 : 3, d = null;\nv(\"webgl\", function() {\n return w(this, void 0, void 0, function() {\n var n;\n return y(this, function(t) {\n typeof document < \"u\" && ((m = document.createElement(\"canvas\")).width = 200, m.height = 100, d = m.getContext(\"webgl\"));\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n return n = Array.from({ length: ne }, function() {\n return function() {\n try {\n if (!d) throw new Error(\"WebGL not supported\");\n var r = `\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n `, o = `\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n `, a = d.createShader(d.VERTEX_SHADER), i = d.createShader(d.FRAGMENT_SHADER);\n if (!a || !i) throw new Error(\"Failed to create shaders\");\n if (d.shaderSource(a, r), d.shaderSource(i, o), d.compileShader(a), !d.getShaderParameter(a, d.COMPILE_STATUS)) throw new Error(\"Vertex shader compilation failed: \" + d.getShaderInfoLog(a));\n if (d.compileShader(i), !d.getShaderParameter(i, d.COMPILE_STATUS)) throw new Error(\"Fragment shader compilation failed: \" + d.getShaderInfoLog(i));\n var e = d.createProgram();\n if (!e) throw new Error(\"Failed to create shader program\");\n if (d.attachShader(e, a), d.attachShader(e, i), d.linkProgram(e), !d.getProgramParameter(e, d.LINK_STATUS)) throw new Error(\"Shader program linking failed: \" + d.getProgramInfoLog(e));\n d.useProgram(e);\n for (var c = 137, l = new Float32Array(4 * c), u = 2 * Math.PI / c, s = 0; s < c; s++) {\n var g = s * u;\n l[4 * s] = 0, l[4 * s + 1] = 0, l[4 * s + 2] = Math.cos(g) * (m.width / 2), l[4 * s + 3] = Math.sin(g) * (m.height / 2);\n }\n var B = d.createBuffer();\n d.bindBuffer(d.ARRAY_BUFFER, B), d.bufferData(d.ARRAY_BUFFER, l, d.STATIC_DRAW);\n var x = d.getAttribLocation(e, \"position\");\n d.enableVertexAttribArray(x), d.vertexAttribPointer(x, 2, d.FLOAT, !1, 0, 0), d.viewport(0, 0, m.width, m.height), d.clearColor(0, 0, 0, 1), d.clear(d.COLOR_BUFFER_BIT), d.drawArrays(d.LINES, 0, 2 * c);\n var T = new Uint8ClampedArray(m.width * m.height * 4);\n return d.readPixels(0, 0, m.width, m.height, d.RGBA, d.UNSIGNED_BYTE, T), new ImageData(T, m.width, m.height);\n } catch {\n return new ImageData(1, 1);\n } finally {\n d && (d.bindBuffer(d.ARRAY_BUFFER, null), d.useProgram(null), d.viewport(0, 0, d.drawingBufferWidth, d.drawingBufferHeight), d.clearColor(0, 0, 0, 0));\n }\n }();\n }), [2, { commonImageHash: I(D(n, m.width, m.height).data.toString()).toString() }];\n } catch {\n return [2, { webgl: \"unsupported\" }];\n }\n return [2];\n });\n });\n});\nvar S = function(n, t, r, o) {\n for (var a = (r - t) / o, i = 0, e = 0; e < o; e++)\n i += n(t + (e + 0.5) * a);\n return i * a;\n};\nv(\"math\", function() {\n return w(void 0, void 0, void 0, function() {\n return y(this, function(n) {\n return [2, { acos: Math.acos(0.5), asin: S(Math.asin, -1, 1, 97), atan: S(Math.atan, -1, 1, 97), cos: S(Math.cos, 0, Math.PI, 97), cosh: Math.cosh(9 / 7), e: Math.E, largeCos: Math.cos(1e20), largeSin: Math.sin(1e20), largeTan: Math.tan(1e20), log: Math.log(1e3), pi: Math.PI, sin: S(Math.sin, -Math.PI, Math.PI, 97), sinh: S(Math.sinh, -9 / 7, 7 / 9, 97), sqrt: Math.sqrt(2), tan: S(Math.tan, 0, 2 * Math.PI, 97), tanh: S(Math.tanh, -9 / 7, 7 / 9, 97) }];\n });\n });\n});\nconst re = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet A = (n = 21) => {\n let t = \"\", r = crypto.getRandomValues(new Uint8Array(n |= 0));\n for (; n--; )\n t += re[r[n] & 63];\n return t;\n};\nclass R {\n constructor(t) {\n h(this, \"config\");\n this.config = t;\n }\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass oe extends R {\n /**\n * Gets ads from the adMarketplace API based on the search term.\n */\n async getAdsForSearchParams(t) {\n if (!this.config.admSub)\n return console.error(\"No admSub specified in config.\"), [];\n const o = `https://demofeed.is.ampfeed.com/is?${new URLSearchParams({\n partner: \"demofeed\",\n sub1: this.config.admSub,\n qt: t.searchTerm,\n v: \"2.0\",\n rfr: \"searchcraft.io\",\n \"results-ta\": `${this.config.admTextAdQuantity || 0}`,\n \"results-pa\": `${this.config.admProductAdQuantity || 0}`\n }).toString()}`, i = await (await fetch(o, { method: \"GET\" })).json(), e = i.product_ads.map(\n (u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-product-ad\",\n admAd: u\n })\n ), c = i.text_ads.map((u) => ({\n id: A(),\n adSource: \"adMarketplace\",\n admAdType: \"adm-text-ad\",\n admAd: u\n }));\n return e.concat(c);\n }\n}\nclass ie extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nclass ae extends R {\n async getAdsForSearchParams(t) {\n return [];\n }\n}\nconst se = 500;\nclass ue {\n constructor(t, r, o) {\n h(this, \"measureRequestTimeout\");\n h(this, \"measureRequestsBatched\", []);\n h(this, \"config\");\n h(this, \"sdkInfo\");\n h(this, \"userId\");\n h(this, \"sessionId\");\n /**\n * Sends a measure event to the `/measure/event` endpoint for analytics purposes.\n *\n * @param {MeasureEventName} eventName - Name of the event.\n * @param {Partial<MeasureRequestProperties>} properties - Additional properties to send with the event.\n * @param {Partial<MeasureRequestUser>} user - Additional user properites to send with the event.\n */\n h(this, \"sendMeasureEvent\", (t, r = {}, o = {}) => {\n const a = {\n event_name: t,\n properties: {\n searchcraft_index_names: this.config.index,\n session_id: this.sessionId,\n ...r\n },\n user: {\n ...this.measureRequestUser,\n ...o\n }\n };\n this.measureRequestsBatched.push(a), clearTimeout(this.measureRequestTimeout), this.measureRequestTimeout = setTimeout(async () => {\n const i = JSON.stringify({ items: this.measureRequestsBatched }), e = `${this.baseMeasureUrl}/batch`;\n try {\n const c = await fetch(e, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: this.config.readKey,\n \"X-Sc-User-Id\": this.userId\n },\n body: i,\n keepalive: !0\n });\n if (!c.ok)\n throw new Error(\n `Failed to send request: ${c.status} ${c.statusText}`\n );\n this.measureRequestsBatched = [];\n return;\n } catch (c) {\n throw console.error(\"Error sending MeasureRequest:\", c), c;\n }\n }, se);\n });\n this.config = t, this.sdkInfo = r, this.userId = o, this.sessionId = A(), this.sendMeasureEvent(\"sdk_initialized\");\n }\n /**\n * Getter for the base url used by the /measure endpoints.\n */\n get baseMeasureUrl() {\n return `${this.config.endpointURL}/measure`;\n }\n /**\n * Getter for the measure request user. Uses config values + navigator values.\n */\n get measureRequestUser() {\n return {\n user_id: this.userId,\n locale: navigator.language || \"en-US\",\n os: navigator.userAgent.includes(\"Windows\") ? \"Windows\" : navigator.userAgent.includes(\"Mac\") ? \"Mac\" : navigator.userAgent.includes(\"Linux\") ? \"Linux\" : \"Unknown\",\n platform: navigator.platform || \"Unknown\",\n sdk_name: this.sdkInfo.sdkName,\n sdk_version: this.sdkInfo.sdkVersion,\n user_agent: navigator.userAgent || \"Unknown\"\n };\n }\n}\nfunction ce(n) {\n const t = [];\n let r = \"should\";\n return n.facetPathsForIndexFields && Object.keys(n.facetPathsForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.facetPathsForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.rangeValueForIndexFields && Object.keys(n.rangeValueForIndexFields).forEach((o) => {\n var i;\n const a = (i = n.rangeValueForIndexFields) == null ? void 0 : i[o];\n a && (r = \"must\", t.push({\n occur: r,\n exact: {\n ctx: a.value\n }\n }));\n }), n.sort === \"desc\" ? n.order_by = \"date_published\" : n.order_by = \"\", t.push({\n occur: r,\n // Valid, as 'occur' is a required property in QueryItem\n [n.mode]: { ctx: n.searchTerm }\n // Ensure dynamic mode is inside queryType\n }), t;\n}\nconst de = (n) => n.endsWith(\"/\") ? n.slice(0, -1) : n, le = (n) => {\n let t = \"\";\n if (t = n.trim(), t = t.replace(/[‘’“”]/g, (o) => ({\n \"‘\": \"'\",\n \"’\": \"'\",\n \"“\": '\"',\n \"”\": '\"'\n })[o] || o), (t.match(/\"/g) || []).length % 2 !== 0)\n throw new Error(\n \"The search term contains an uneven number of quote characters.\"\n );\n return t;\n};\nclass he {\n constructor(t, r, o) {\n h(this, \"config\");\n h(this, \"userId\");\n h(this, \"parent\");\n /**\n * Performs a search operation.\n * @param {SearchParams} searchParams - The parameters for the search.\n */\n h(this, \"getSearchResponse\", async (t) => {\n var o, a;\n const r = le(t.searchTerm);\n (o = this.parent.measureClient) == null || o.sendMeasureEvent(\"search_requested\", {\n search_term: r\n }), this.parent.emitEvent(\"query_submitted\", {\n name: \"query_submitted\",\n data: {\n searchTerm: r\n }\n });\n try {\n const i = {\n query: ce(t),\n offset: t.offset || 0,\n // Default to 0 (first page) if not provided\n limit: t.limit || this.config.searchResultsPerPage || 20\n // Default to 20 if not provided\n };\n t.order_by && (i.order_by = t.order_by, i.sort = t.sort === \"desc\" || t.sort === \"asc\" ? t.sort : \"asc\");\n const e = {\n method: \"POST\",\n headers: {\n Authorization: this.config.readKey,\n \"Content-Type\": \"application/json\",\n \"X-Sc-User-Id\": this.userId\n },\n body: JSON.stringify(i)\n }, c = await fetch(this.baseSearchUrl, e);\n if (!c.ok)\n throw new Error(\n `Error: ${c.statusText} (Status: ${c.status})`\n );\n const l = await c.json();\n return (a = this.parent.measureClient) == null || a.sendMeasureEvent(\"search_response_received\", {\n search_term: r,\n number_of_documents: l.data.count\n }), l;\n } catch (i) {\n throw console.error(\"Error parsing response:\", i), i;\n }\n });\n this.parent = t, this.config = r, this.userId = o;\n }\n /**\n * Getter for the base url used by the /search endpoint.\n */\n get baseSearchUrl() {\n return `${this.config.endpointURL}/index/${this.config.index.join(\",\")}/search`;\n }\n}\nclass ge {\n constructor(t, r) {\n h(this, \"config\");\n h(this, \"measureClient\");\n h(this, \"searchClient\");\n h(this, \"adClient\");\n h(this, \"userId\");\n h(this, \"requestTimeout\");\n h(this, \"subscriptionEvents\", {});\n /**\n * Gets items from the SearchClient and the AdClient.\n */\n h(this, \"getItems\", (t, r, o) => {\n const a = async () => {\n (async () => {\n var c, l;\n const i = await ((c = this == null ? void 0 : this.searchClient) == null ? void 0 : c.getSearchResponse(t));\n if (!i)\n throw new Error(\"Search client was not initialized.\");\n const e = (l = i.data.hits || []) == null ? void 0 : l.map((u) => u.doc).filter((u) => !!u).map((u) => ({\n type: \"SearchDocument\",\n id: A(),\n document: u\n }));\n e.length === 0 && this.emitEvent(\"no_results_returned\", {\n name: \"no_results_returned\"\n }), r(i, e);\n })(), (async () => {\n if (this.adClient) {\n const i = await this.adClient.getAdsForSearchParams(t);\n o(i);\n }\n })();\n };\n clearTimeout(this.requestTimeout), this.config.searchDebounceDelay ? this.requestTimeout = setTimeout(\n a,\n this.config.searchDebounceDelay\n ) : a();\n });\n if (!t.endpointURL || !t.index || !t.readKey)\n throw new Error(\n \"Endpoint URL, Index value(s), and Read Key must be provided\"\n );\n this.config = {\n ...t,\n // Strips off the trailing '/' from an endpointURL if one is accidentally added\n endpointURL: de(t.endpointURL)\n }, this.userId = \"\", this.initClients(this.config, r), this.initInputForms(), this.startObservingMutations();\n }\n initInputForms() {\n const t = document.querySelectorAll(\n \"searchcraft-input-form\"\n );\n setTimeout(() => {\n t.forEach((r) => {\n r.core = this;\n });\n }, 40);\n }\n /**\n * When changes happen in the DOM, we want to link any input forms found to the instance of the core.\n */\n startObservingMutations() {\n new MutationObserver((r, o) => {\n let a = !1;\n for (const i of r)\n i.type === \"childList\" && i.addedNodes.forEach((e) => {\n e.nodeType === 1 && e.className.toLowerCase() === \"searchcraft-input-form\" && (a = !0);\n });\n a && this.initInputForms();\n }).observe(document.body, { childList: !0, subtree: !0 });\n }\n initClients(t, r) {\n setTimeout(async () => {\n let o = this.config.userId;\n switch (o || (o = await $()), this.measureClient = new ue(t, r, o), this.searchClient = new he(this, t, o), t.adSource) {\n case \"adMarketplace\":\n this.adClient = new oe(t);\n break;\n case \"Nativo\":\n this.adClient = new ae(t);\n break;\n case \"Custom\":\n this.adClient = new ie(t);\n break;\n }\n }, 300);\n }\n emitEvent(t, r) {\n var o;\n (o = this.subscriptionEvents[t]) == null || o.forEach((a) => {\n a(r);\n });\n }\n subscribe(t, r) {\n return this.subscriptionEvents[t] || (this.subscriptionEvents[t] = []), this.subscriptionEvents[t].push(\n r\n ), () => {\n this.subscriptionEvents[t] = this.subscriptionEvents[t].filter((o) => o !== r);\n };\n }\n}\n\nvar zustand = {};\n\nvar vanilla$1 = {};\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nvanilla$1.createStore = createStore;\n\nvar react$1 = {};\n\nvar react = {exports: {}};\n\nvar react_production = {};\n\n/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop$1, noop$1)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction noop() {}\nreact_production.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nreact_production.Component = Component;\nreact_production.Fragment = REACT_FRAGMENT_TYPE;\nreact_production.Profiler = REACT_PROFILER_TYPE;\nreact_production.PureComponent = PureComponent;\nreact_production.StrictMode = REACT_STRICT_MODE_TYPE;\nreact_production.Suspense = REACT_SUSPENSE_TYPE;\nreact_production.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nreact_production.act = function () {\n throw Error(\"act(...) is not supported in production builds of React.\");\n};\nreact_production.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nreact_production.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nreact_production.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nreact_production.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nreact_production.createRef = function () {\n return { current: null };\n};\nreact_production.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nreact_production.isValidElement = isValidElement;\nreact_production.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nreact_production.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nreact_production.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n};\nreact_production.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nreact_production.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nreact_production.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nreact_production.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nreact_production.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nreact_production.useDebugValue = function () {};\nreact_production.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nreact_production.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nreact_production.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nreact_production.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nreact_production.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nreact_production.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nreact_production.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nreact_production.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nreact_production.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nreact_production.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nreact_production.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nreact_production.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nreact_production.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nreact_production.version = \"19.0.0\";\n\n{\n react.exports = react_production;\n}\n\nvar React = react.exports;\nvar vanilla = vanilla$1;\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = vanilla.createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nreact$1.create = create;\nreact$1.useStore = useStore;\n\n(function (exports) {\n\nvar vanilla = vanilla$1;\nvar react = react$1;\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n}(zustand));\n\nconst initialSearchcraftStateValues = {\n adClientResponseItems: [],\n core: undefined,\n logger: undefined,\n facetPathsForIndexFields: {},\n isPopoverVisible: false,\n isSearchInProgress: false,\n searchTerm: '',\n rangeValueForIndexFields: {},\n searchMode: 'fuzzy',\n searchClientResponseItems: [],\n searchResponseTimeTaken: undefined,\n searchResponseFacetPrime: undefined,\n searchResultsCount: 0,\n searchResultsPerPage: 20,\n searchResultsPage: 1,\n sortType: 'asc',\n};\nconst searchcraftStore = zustand.createStore((set, get) => {\n const functions = {\n addFacetPathsForIndexField: (data) => set((state) => ({\n facetPathsForIndexFields: {\n ...state.facetPathsForIndexFields,\n [data.fieldName]: data,\n },\n })),\n addRangeValueForIndexField: (data) => set((state) => ({\n rangeValueForIndexFields: {\n ...state.rangeValueForIndexFields,\n [data.fieldName]: data,\n },\n })),\n getSearchcraftInstance: () => {\n const { core } = get();\n return core;\n },\n initialize: (searchcraftInstance, debug = false) => {\n const core = searchcraftInstance;\n const logger = debug\n ? new pe({ logLevel: F.DEBUG })\n : undefined;\n set({\n core,\n logger,\n searchResultsPerPage: core.config.searchResultsPerPage || 20,\n });\n },\n removeFacetPathsForIndexField: (fieldName) => set((state) => {\n const currentPaths = state.facetPathsForIndexFields;\n delete currentPaths[fieldName];\n return {\n facetPathsForIndexFields: {\n ...currentPaths,\n },\n };\n }),\n removeRangeValueForIndexField: (fieldName) => set((state) => {\n const currentValues = state.rangeValueForIndexFields;\n delete currentValues[fieldName];\n return {\n rangeValueForIndexFields: {\n ...currentValues,\n },\n };\n }),\n resetFacetPaths: () => {\n set({\n facetPathsForIndexFields: {},\n });\n },\n search: async () => {\n const state = get();\n state.logger?.log(F.INFO, `Starting search with search term: \"${state.searchTerm}\"`);\n if (!state.core) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n if (!state.searchTerm.trim()) {\n state.logger?.log(F.INFO, 'No search request was made: search term was empty.');\n set({\n searchClientResponseItems: [],\n searchResultsCount: 0,\n searchResultsPage: 1,\n searchTerm: '',\n });\n return;\n }\n set({ isSearchInProgress: true });\n const handleSearchcraftResponse = (response, items) => {\n const facetsFromResponse = response.data.facets;\n set((state) => {\n return {\n isSearchInProgress: false,\n searchClientResponseItems: items,\n searchResponseTimeTaken: response.data.time_taken || 0,\n searchResultsPage: \n // reset to first page when response count changes\n response.data.count === state.searchResultsCount\n ? state.searchResultsPage\n : 1,\n searchResultsCount: response.data.count || 0,\n };\n });\n if (facetsFromResponse) {\n set({ searchResponseFacetPrime: facetsFromResponse });\n }\n state.logger?.log(F.DEBUG, `Search results: ${JSON.stringify(items)}`);\n state.logger?.log(F.DEBUG, `Facets from response: ${JSON.stringify(facetsFromResponse)}`);\n };\n const handleAdResponse = (adClientResponseItems) => {\n set({ adClientResponseItems });\n };\n state.core.getItems({\n searchTerm: state.searchTerm,\n mode: state.searchMode,\n sort: state.sortType,\n facetPathsForIndexFields: state.facetPathsForIndexFields,\n rangeValueForIndexFields: state.rangeValueForIndexFields,\n offset: state.searchResultsPerPage\n ? state.searchResultsPerPage * (state.searchResultsPage - 1)\n : 0,\n limit: state.searchResultsPerPage,\n }, handleSearchcraftResponse, handleAdResponse);\n },\n setPopoverVisibility: (isVisible) => {\n set({\n isPopoverVisible: isVisible,\n });\n },\n setSearchMode: (mode) => set({ searchMode: mode }),\n setSortType: (type) => set({ sortType: type }),\n setSearchTerm: (searchTerm) => {\n const { core } = get();\n if (core && searchTerm.length === 0) {\n core.emitEvent('input_cleared', {\n name: 'input_cleared',\n });\n }\n /**\n * When a new searchTerm is set, also reset the sort type, search mode, and facet paths.\n */\n set({\n searchTerm,\n facetPathsForIndexFields: {},\n ...(searchTerm.trim().length === 0 && {\n searchMode: 'fuzzy',\n sortType: 'asc',\n }),\n });\n },\n setSearchClientResponseItems: (items) => set({ searchClientResponseItems: items }),\n setSearchResultsPage: async (page) => {\n set({ searchResultsPage: page });\n await functions.search();\n },\n setSearchResultsPerPage: async (perPage) => {\n set({ searchResultsPerPage: perPage });\n await functions.search();\n },\n };\n const stateObject = {\n ...initialSearchcraftStateValues,\n ...functions,\n };\n return stateObject;\n});\n\nexport { ge as g, searchcraftStore as s };\n\n//# sourceMappingURL=p-6d8b0ead.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar purify = {exports: {}};\n\n/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\n(function (module, exports) {\n(function (global, factory) {\n module.exports = factory() ;\n})(commonjsGlobal, (function () {\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const arraySplice = unapply(Array.prototype.splice);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n /**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n /**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n });\n\n /* eslint-disable @typescript-eslint/indent */\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n const _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n\n}(purify));\n\nconst DOMPurify = purify.exports;\n\nconst urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\n\nlet nanoid = (size = 21) => {\n let id = '';\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)));\n while (size--) {\n id += urlAlphabet[bytes[size] & 63];\n }\n return id\n};\n\nconst SearchcraftPopoverListItemAd = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItemAd extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n adSource = 'Custom';\n adClientResponseItem;\n searchTerm;\n unsubscribe = () => { };\n core;\n adContainerId = nanoid();\n connectedCallback() {\n const currentState = searchcraftStore.getState();\n this.core = currentState.core;\n this.searchTerm = currentState.searchTerm;\n // Subscribes to store changes (for search term).\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n this.searchTerm = state.searchTerm;\n });\n // Sends impression request if its an adm ad.\n if (this.adClientResponseItem?.adSource === 'adMarketplace') {\n const item = this.adClientResponseItem;\n if (item.admAd?.impression_url) {\n fetch(item.admAd.impression_url);\n }\n }\n // Emits ad_container_rendered event.\n this.core?.emitEvent('ad_container_rendered', {\n name: 'ad_container_rendered',\n data: {\n adContainerId: this.adContainerId,\n adSource: this.adSource,\n searchTerm: this.searchTerm,\n },\n });\n }\n disconnectedCallback() {\n this.unsubscribe();\n }\n renderADMAd() {\n const item = this.adClientResponseItem;\n if (!item.admAd) {\n return;\n }\n return (h(\"a\", { class: 'searchcraft-adm-ad', href: item.admAd.click_url }, item.admAd.image_url && (h(\"div\", { class: 'searchcraft-adm-ad-image-wrapper' }, h(\"img\", { alt: item.admAd.term || 'image', src: item.admAd.image_url, class: 'searchcraft-adm-ad-image' }))), h(\"div\", { class: 'searchcraft-adm-ad-info-wrapper' }, h(\"p\", { class: 'searchcraft-adm-ad-title' }, item.admAd.term), item.admAd.price && (h(\"p\", { class: 'searchcraft-adm-ad-subtitle' }, item.admAd.price)))));\n }\n renderCustomAd() {\n const templateRenderFunction = this.core?.config?.customAdTemplate;\n const containerId = `searchcraft-custom-ad-${this.adContainerId}`;\n let containerInnerHTML = '<p>Custom Ad Placeholder</p>';\n if (templateRenderFunction) {\n containerInnerHTML = templateRenderFunction({\n searchTerm: this.searchTerm,\n adContainerId: this.adContainerId,\n });\n }\n return (h(\"div\", { class: 'searchcraft-custom-ad', id: containerId, \"data-searchcraft-ad-container-id\": this.adContainerId, innerHTML: DOMPurify.sanitize(containerInnerHTML) }));\n }\n renderNativoAd() {\n return h(\"div\", { class: 'searchcraft-nativo-ad' });\n }\n render() {\n switch (this.adSource) {\n case 'adMarketplace':\n return this.renderADMAd();\n case 'Custom':\n return this.renderCustomAd();\n case 'Nativo':\n return this.renderNativoAd();\n default:\n return;\n }\n }\n}, [0, \"searchcraft-ad\", {\n \"adSource\": [1, \"ad-source\"],\n \"adClientResponseItem\": [16],\n \"searchTerm\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-ad\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListItemAd);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItemAd as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-05872320.js.map","import { S as SearchcraftPopoverListItemAd, d as defineCustomElement$1 } from './p-05872320.js';\n\nconst SearchcraftAd = SearchcraftPopoverListItemAd;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftAd, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-ad.js.map","/**\n * Given a document and a SearchResultMapping, return a mapped value from the document.\n *\n * Applies formatting based on the values specified in the `SearchResultFieldName` values.\n *\n * @param document\n * @param {SearchResultMapping} mapping\n * @returns {string | undefined}\n */\nfunction getDocumentValueFromSearchResultMapping(document, mapping) {\n if (document && mapping) {\n return mapping.fieldNames\n .map((fieldNameDetails) => {\n let valueFound = document[fieldNameDetails.fieldName];\n if (valueFound) {\n switch (fieldNameDetails.dataType) {\n case 'date': {\n // TODO: Use fieldNameDetails.DateFormatOptions to format the date\n valueFound = getFormattedTimeFromNow(valueFound);\n break;\n }\n case 'number': {\n valueFound = Intl.NumberFormat(fieldNameDetails.numberFormatLocale, fieldNameDetails.numberFormatOptions).format(valueFound * (fieldNameDetails.numberScale || 1));\n break;\n }\n }\n }\n return valueFound;\n })\n .filter((value) => !!value)\n .join(mapping.delimiter || ' ');\n }\n}\nfunction getMillis(unit) {\n const millisInHour = 60 * 60 * 1000;\n const millisInDay = 24 * millisInHour;\n const millisInMonth = 30 * millisInDay;\n const millisInYear = 365 * millisInDay;\n switch (unit) {\n case 'hour':\n return millisInHour;\n case 'day':\n return millisInDay;\n case 'month':\n return millisInMonth;\n case 'year':\n return millisInYear;\n default:\n return 3600000;\n }\n}\nfunction formatNumberWithCommas(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n/**\n * Given a timestamp value, returns a formatted time string for the time\n * since now.\n *\n * @param timestamp\n * @returns {string} Formatted string value\n */\nfunction getFormattedTimeFromNow(timestamp) {\n const now = new Date();\n const inputTime = new Date(timestamp);\n const diffInSeconds = Math.floor((now.getTime() - inputTime.getTime()) / 1000);\n const minutes = Math.floor(diffInSeconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const years = Math.floor(days / 365);\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n if (hours < 24) {\n return `${hours}h ago`;\n }\n if (days < 365) {\n return `${days}d ago`;\n }\n return `${years}y ago`;\n}\n\nexport { getDocumentValueFromSearchResultMapping as a, formatNumberWithCommas as f, getMillis as g };\n\n//# sourceMappingURL=p-6104fe5d.js.map","import { p as proxyCustomElement, H, h, F as Fragment } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { a as getDocumentValueFromSearchResultMapping } from './p-6104fe5d.js';\n\nconst SearchcraftBaseSearchResult = /*@__PURE__*/ proxyCustomElement(class SearchcraftBaseSearchResult extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n item;\n searchResultMappings;\n /**\n * Where to open the link for the containing element.\n */\n containerTarget = '_blank';\n /**\n * The relationship between the current document and the link for the containing element.\n */\n containerRel;\n /**\n * Where to open the link for the button rendered when containerHref is not present.\n */\n buttonTarget = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present.\n */\n buttonRel;\n /**\n * The placement of the image.\n */\n imagePlacement = 'right';\n /**\n * A custom styles object.\n */\n customStyles;\n /**\n * The position in the document. Used with the \"document_clicked\" measure event.\n */\n documentPosition = 0;\n titleContent;\n subtitleContent;\n bodyContent;\n footerContent;\n buttonLabel;\n buttonHref;\n containerHref;\n imageSrc;\n imageAlt;\n searchcraftStore = searchcraftStore.getState();\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n }\n mapValuesFromDocument(document) {\n this.titleContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.title);\n this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.subtitle);\n this.bodyContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.body);\n this.containerHref = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.containerHref);\n this.buttonHref = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.buttonHref);\n this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.imageSource);\n this.footerContent = getDocumentValueFromSearchResultMapping(document, this.searchResultMappings?.footer);\n }\n handleLinkClick = () => {\n const searchcraft = this.searchcraftStore.getSearchcraftInstance();\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = this.searchcraftStore.searchTerm;\n const number_of_documents = this.searchcraftStore.searchClientResponseItems.length;\n searchcraft.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n parseStyles = () => {\n if (this.customStyles) {\n try {\n return JSON.parse(this.customStyles);\n }\n catch (error) {\n console.error('Error parsing custom styles:', error);\n return {};\n }\n }\n return {};\n };\n render() {\n const styles = this.parseStyles();\n const imageContainer = this.imageSrc && (h(\"img\", { alt: this.imageAlt, class: 'searchcraft-search-result-image', src: this.imageSrc, style: styles.image || {} }));\n const contentContainer = (h(Fragment, null, this.imageSrc && this.imagePlacement === 'left' && imageContainer, h(\"div\", { class: 'searchcraft-base-search-result-content-container' }, this.titleContent && (h(\"h2\", { class: 'searchcraft-base-search-result-title', style: styles.title || {} }, this.titleContent)), this.subtitleContent && (h(\"h3\", { class: 'searchcraft-base-search-result-subtitle', style: styles.subtitle || {} }, this.subtitleContent)), this.bodyContent && (h(\"p\", { class: 'searchcraft-base-search-result-body-content', style: styles.primaryContent || {} }, this.bodyContent)), this.footerContent && (h(\"p\", { class: 'searchcraft-base-search-result-footer-content', style: styles.secondaryContent || {} }, this.footerContent)), this.buttonHref && !this.containerHref && this.buttonLabel && (h(\"a\", { class: 'searchcraft-search-result-button', href: this.buttonHref, style: styles.button || {}, target: this.buttonTarget, rel: this.buttonRel }, this.buttonLabel))), this.imageSrc && this.imagePlacement === 'right' && imageContainer));\n /** Render as an anchor tag if the containerHref prop is present. */\n if (this.containerHref) {\n return (h(\"a\", { class: 'searchcraft-search-result-container', onClick: this.handleLinkClick, href: this.containerHref, rel: this.containerRel, style: styles.container || {}, tabindex: '0', target: this.containerTarget }, contentContainer));\n }\n /** Render as a div if no href prop. */\n return (h(\"div\", { class: 'searchcraft-search-result-container', style: styles.container || {} }, contentContainer));\n }\n}, [0, \"searchcraft-base-search-result\", {\n \"item\": [16],\n \"searchResultMappings\": [16],\n \"containerTarget\": [1, \"container-target\"],\n \"containerRel\": [1, \"container-rel\"],\n \"buttonTarget\": [1, \"button-target\"],\n \"buttonRel\": [1, \"button-rel\"],\n \"imagePlacement\": [1, \"image-placement\"],\n \"customStyles\": [1, \"custom-styles\"],\n \"documentPosition\": [2, \"document-position\"],\n \"titleContent\": [32],\n \"subtitleContent\": [32],\n \"bodyContent\": [32],\n \"footerContent\": [32],\n \"buttonLabel\": [32],\n \"buttonHref\": [32],\n \"containerHref\": [32],\n \"imageSrc\": [32],\n \"imageAlt\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-base-search-result\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-base-search-result\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftBaseSearchResult);\n }\n break;\n } });\n}\n\nexport { SearchcraftBaseSearchResult as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-cd9ba361.js.map","import { S as SearchcraftBaseSearchResult$1, d as defineCustomElement$1 } from './p-cd9ba361.js';\n\nconst SearchcraftBaseSearchResult = SearchcraftBaseSearchResult$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftBaseSearchResult, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-base-search-result.js.map","function parseCustomStyles(styles) {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n }\n catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\nfunction serializeStyles(styles) {\n try {\n return JSON.stringify(styles);\n }\n catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\n}\n\nexport { parseCustomStyles as p, serializeStyles as s };\n\n//# sourceMappingURL=p-d9551738.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\n\nconst SearchcraftErrorMessage = /*@__PURE__*/ proxyCustomElement(class SearchcraftErrorMessage extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The error message.\n */\n errorMessage;\n render() {\n return (h(\"p\", { key: 'dc97bb66da10a98fca027f928deaaf80d945417b', class: 'searchcraft-error-message' }, this.errorMessage || 'Search term is required.'));\n }\n}, [0, \"searchcraft-error-message\", {\n \"errorMessage\": [1, \"error-message\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-error-message\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftErrorMessage);\n }\n break;\n } });\n}\n\nexport { SearchcraftErrorMessage as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-0e393fe1.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { s as serializeStyles } from './p-d9551738.js';\nimport { d as defineCustomElement$4 } from './p-05872320.js';\nimport { d as defineCustomElement$3 } from './p-cd9ba361.js';\nimport { d as defineCustomElement$2 } from './p-0e393fe1.js';\n\nconst SearchcraftBaseSearchResults$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftBaseSearchResults extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * A custom styles object.\n */\n customStylesForResults;\n /**\n * Formats the content rendered for each result.\n */\n searchResultMappings;\n /**\n * The placement of the image for each result.\n */\n resultImagePlacement = 'right';\n /**\n * The label for the button rendered when containerHref is not present for each result.\n */\n buttonLabel;\n /**\n * Where to open the link for the button rendered when containerHref is not present for each result.\n */\n buttonTarget = '_blank';\n /**\n * The relationship between the current document and the link for the button rendered when containerHref is not present for each result.\n */\n buttonRel;\n /**\n * Where to open the link for the containing element for each result.\n */\n containerTarget = '_blank';\n /**\n * The relationship between the current document and the link for the containing element for each result.\n */\n containerRel;\n searchTerm = '';\n searchClientResponseItems = [];\n adClientResponseItems = [];\n searchResultsPerPage;\n searchResultsPage;\n isSearchInProgress = false;\n config;\n unsubscribe = () => { };\n get serializedStyles() {\n let serializedStyles = '';\n if (this.customStylesForResults) {\n serializedStyles =\n typeof this.customStylesForResults === 'string'\n ? this.customStylesForResults\n : serializeStyles(this.customStylesForResults);\n }\n return serializedStyles;\n }\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => this.handleStateChange(state));\n const currentState = searchcraftStore.getState();\n this.searchClientResponseItems = currentState.searchClientResponseItems;\n this.searchTerm = currentState.searchTerm;\n this.config = currentState.core?.config;\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleStateChange(state) {\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.config = state.core?.config;\n this.isSearchInProgress = state.isSearchInProgress;\n }\n renderEmptyState() {\n return (h(\"div\", { class: 'searchcraft-search-results-empty-state-container' }, h(\"slot\", { name: 'empty-search' })));\n }\n renderNoResultsFoundState() {\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, h(\"div\", { class: 'searchcraft-search-results-error-message-container' }, h(\"searchcraft-error-message\", { \"error-message\": `No search results found for \"${this.searchTerm}\" query` }))));\n }\n renderWithADMAds() {\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { adSource: 'adMarketplace', adClientResponseItem: item, key: item.id }))), this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-base-search-result\", { key: item.id, \"custom-styles\": this.serializedStyles, \"image-placement\": this.resultImagePlacement, \"container-rel\": this.containerRel, \"container-target\": this.containerTarget, \"button-label\": this.buttonLabel || 'View more', \"button-rel\": this.buttonRel, \"button-target\": this.buttonTarget, \"document-position\": this.searchResultsPerPage * this.searchResultsPage + index, searchResultMappings: this.searchResultMappings, item: item })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdStartQuantity || 0;\n const adEndQuantity = this.config?.customAdEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${item.id}-ad-${n}` }));\n }\n }\n itemsToRender.push(h(\"searchcraft-base-search-result\", { key: item.id, \"custom-styles\": this.serializedStyles, \"image-placement\": this.resultImagePlacement, \"container-rel\": this.containerRel, \"container-target\": this.containerTarget, \"button-label\": this.buttonLabel || 'View more', \"button-rel\": this.buttonRel, \"button-target\": this.buttonTarget, \"document-position\": this.searchResultsPerPage * this.searchResultsPage + index, searchResultMappings: this.searchResultMappings, item: item }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, itemsToRender));\n }\n renderWithNoAds() {\n return (h(\"div\", { class: 'searchcraft-search-results-container' }, this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-base-search-result\", { key: item.id, \"custom-styles\": this.serializedStyles, \"image-placement\": this.resultImagePlacement, \"container-rel\": this.containerRel, \"container-target\": this.containerTarget, \"button-label\": this.buttonLabel || 'View more', \"button-rel\": this.buttonRel, \"button-target\": this.buttonTarget, \"document-position\": this.searchResultsPerPage * this.searchResultsPage + index, searchResultMappings: this.searchResultMappings, item: item })))));\n }\n render() {\n if (this.searchTerm.trim() === '') {\n return this.renderEmptyState();\n }\n if (this.searchTerm.length > 0 &&\n this.searchClientResponseItems.length === 0 &&\n !this.isSearchInProgress) {\n return this.renderNoResultsFoundState();\n }\n switch (this.config?.adSource || 'None') {\n case 'adMarketplace':\n return this.renderWithADMAds();\n case 'Custom':\n return this.renderWithCustomAds();\n default:\n return this.renderWithNoAds();\n }\n }\n}, [4, \"searchcraft-base-search-results\", {\n \"customStylesForResults\": [1, \"custom-styles-for-results\"],\n \"searchResultMappings\": [16],\n \"resultImagePlacement\": [1, \"result-image-placement\"],\n \"buttonLabel\": [1, \"button-label\"],\n \"buttonTarget\": [1, \"button-target\"],\n \"buttonRel\": [1, \"button-rel\"],\n \"containerTarget\": [1, \"container-target\"],\n \"containerRel\": [1, \"container-rel\"],\n \"searchTerm\": [32],\n \"searchClientResponseItems\": [32],\n \"adClientResponseItems\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsPage\": [32],\n \"isSearchInProgress\": [32],\n \"config\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-base-search-results\", \"searchcraft-ad\", \"searchcraft-base-search-result\", \"searchcraft-error-message\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-base-search-results\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftBaseSearchResults$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-base-search-result\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftBaseSearchResults = SearchcraftBaseSearchResults$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftBaseSearchResults, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-base-search-results.js.map","var classnames = {exports: {}};\n\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\n(function (module) {\n/* global define */\n\n(function () {\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n}(classnames));\n\nconst classNames = classnames.exports;\n\nexport { classNames as c };\n\n//# sourceMappingURL=p-5cdc6210.js.map","import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftButton extends H {\n constructor() {\n super();\n this.__registerHost();\n this.buttonClick = createEvent(this, \"buttonClick\", 7);\n }\n /**\n * Controls the visual representation of the button.\n */\n hierarchy = 'primary';\n /**\n * Whether the button is disabled.\n */\n disabled = false;\n /**\n * The icon element.\n */\n icon;\n /**\n * Should the button only display an icon.\n */\n iconOnly = false;\n /**\n * The position of the icon.\n */\n iconPosition = 'left';\n /**\n * The label for the button.\n */\n label = 'Search';\n /**\n * The type of the button.\n */\n type = 'button';\n /**\n * The event fired when the button is clicked.\n */\n buttonClick;\n handleButtonClick = () => {\n this.buttonClick.emit();\n };\n render() {\n return (h(\"button\", { key: 'ff883b930d03da6cbfb40badd3be1de0a873f853', \"aria-label\": this.label, class: classNames('searchcraft-button', {\n 'searchcraft-button-primary': this.hierarchy === 'primary',\n 'searchcraft-button-tertiary': this.hierarchy === 'tertiary',\n 'searchcraft-button-disabled': this.disabled,\n }), disabled: this.disabled, onClick: this.handleButtonClick, type: this.type }, this.iconOnly ? (this.icon) : (h(Fragment, null, this.iconPosition === 'left' && this.icon, h(\"span\", null, this.label), this.iconPosition === 'right' && this.icon))));\n }\n}, [0, \"searchcraft-button\", {\n \"hierarchy\": [1],\n \"disabled\": [4],\n \"icon\": [16],\n \"iconOnly\": [4, \"icon-only\"],\n \"iconPosition\": [1, \"icon-position\"],\n \"label\": [1],\n \"type\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftButton as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-71cc28c1.js.map","import { S as SearchcraftButton$1, d as defineCustomElement$1 } from './p-71cc28c1.js';\n\nconst SearchcraftButton = SearchcraftButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftButton, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-button.js.map","import { S as SearchcraftErrorMessage$1, d as defineCustomElement$1 } from './p-0e393fe1.js';\n\nconst SearchcraftErrorMessage = SearchcraftErrorMessage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftErrorMessage, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-error-message.js.map","import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\n\nfunction deepMergeWithSpread(obj1, obj2) {\n const result = { ...obj1 };\n for (const key in obj2) {\n // biome-ignore lint/suspicious/noPrototypeBuiltins: <explanation>\n if (obj2.hasOwnProperty(key)) {\n if (obj2[key] instanceof Object && obj1[key] instanceof Object) {\n result[key] = deepMergeWithSpread(obj1[key], obj2[key]);\n }\n else {\n result[key] = obj2[key];\n }\n }\n }\n return result;\n}\n/**\n * Given an array of facet paths, removes parent facet paths.\n */\nfunction removeSubstringMatches(arr) {\n return arr.filter((entry, index, array) => !array.some((otherEntry, otherIndex) => otherIndex !== index && otherEntry.includes(entry)));\n}\nfunction facetToRecord(facet) {\n const records = {};\n const traverseAndAddToFragments = (facetChild) => {\n records[facetChild.path] = {\n count: facetChild.count,\n path: facetChild.path,\n };\n facetChild.children?.forEach((child) => {\n traverseAndAddToFragments(child);\n });\n };\n traverseAndAddToFragments(facet);\n return records;\n}\nfunction recordToObject(record) {\n const root = {\n count: 0,\n path: '/',\n children: {},\n };\n Object.keys(record).forEach((key) => {\n const fragment = record[key];\n if (!fragment) {\n return;\n }\n if (fragment.path === '/') {\n return;\n }\n const pathParts = fragment.path.substring(1).split('/');\n let currentRoot = root;\n let currentPath = '';\n pathParts.forEach((part, index) => {\n const nextPath = `${currentPath}/${part}`;\n if (!currentRoot.children[nextPath]) {\n currentRoot.children[nextPath] = {\n count: 0,\n path: nextPath,\n children: {},\n };\n }\n if (index === pathParts.length - 1) {\n currentRoot.children[nextPath].count = fragment.count;\n }\n currentPath = nextPath;\n currentRoot = currentRoot.children[nextPath];\n });\n });\n return root;\n}\nfunction objectToFacet(childObject) {\n const transformed = {\n count: childObject.count,\n path: childObject.path,\n children: [],\n };\n if (Object.keys(childObject.children).length > 0) {\n transformed.children = Object.values(childObject.children).map((subChildObject) => objectToFacet(subChildObject));\n }\n return transformed;\n}\n/**\n * Filters records with the parent paths from record2 OUT of record1\n */\nfunction filterRecordByParentPaths(record1, record2) {\n // Extract all paths (keys) both records\n const paths1 = Object.keys(record1);\n const paths2 = Object.keys(record2);\n // Find all parent paths in record2\n const parentPaths = new Set(paths2\n .filter((path) => path.split('/').length > 2) // Only consider paths with more than one level\n .map((path) => path.substring(0, path.lastIndexOf('/'))));\n // Filter out keys in record1 that share a parent path with any of the identified parent paths\n const filteredRecord = Object.fromEntries(paths1\n .filter((path) => !parentPaths.has(path.substring(0, path.lastIndexOf('/'))))\n .map((path) => [path, record1[path]]));\n return filteredRecord;\n}\nfunction mergeFacetRoots(fieldName, currentRoot, incomingRoot) {\n const currentArray = currentRoot[fieldName];\n const incomingArray = incomingRoot[fieldName];\n const currentRootFacetChild = {\n count: 0,\n path: '/',\n children: currentArray,\n };\n const incomingRootFacetChild = {\n count: 0,\n path: '/',\n children: incomingArray,\n };\n // Flatten them into records\n const currentRecord = facetToRecord(currentRootFacetChild);\n const incomingRecord = facetToRecord(incomingRootFacetChild);\n // Filter out the records from record1 (the current set of records)\n // that share a parent path with record2 (the incoming records)\n const filteredCurrentRecord = filterRecordByParentPaths(currentRecord, incomingRecord);\n // Deep merge the records together\n const mergedRecord = deepMergeWithSpread(filteredCurrentRecord, incomingRecord);\n // Convert into a heirarchical object\n const mergedObject = recordToObject(mergedRecord);\n // Convert the heirarchical object back to the Facet child structure\n const mergedFacetChild = objectToFacet(mergedObject);\n return {\n [fieldName]: mergedFacetChild.children,\n };\n}\n\nconst SearchcraftFacetList = /*@__PURE__*/ proxyCustomElement(class SearchcraftFacetList extends H {\n constructor() {\n super();\n this.__registerHost();\n this.facetSelectionUpdated = createEvent(this, \"facetSelectionUpdated\", 7);\n }\n /**\n * The name of the field where facets are applied.\n */\n fieldName = '';\n /**\n * When the facets are updated.\n */\n facetSelectionUpdated;\n baseFacetRoot;\n facetRoot;\n selectedPaths = {};\n lastTimeTaken;\n hasNewSearchTerm = false;\n lastSearchTerm;\n lastSearchMode;\n lastSortType;\n unsubscribe;\n searchStore = searchcraftStore.getState();\n handleStateUpdate(state) {\n const facetPrime = state.searchResponseFacetPrime;\n const timeTaken = state.searchResponseTimeTaken;\n if (!this.fieldName) {\n return;\n }\n /** Things to do when the state's search term has changed, but before the response received */\n if (state.searchTerm !== this.lastSearchTerm ||\n state.searchMode !== this.lastSearchMode ||\n state.sortType !== this.lastSortType) {\n this.selectedPaths = {};\n this.hasNewSearchTerm = true;\n }\n /** Things to do when a new response with a new facet prime has been received */\n if (timeTaken !== this.lastTimeTaken && facetPrime) {\n this.facetRoot = undefined;\n const incomingFacetRoot = facetPrime.find((facet) => this.fieldName === Object.keys(facet)[0]);\n /** Data is from a new search term: completely override our facets */\n if (this.hasNewSearchTerm) {\n this.baseFacetRoot = incomingFacetRoot;\n this.facetRoot = incomingFacetRoot;\n this.hasNewSearchTerm = false;\n }\n else if (this.baseFacetRoot && incomingFacetRoot) {\n /** Data is from an existing search term, merge the facets together */\n this.facetRoot = mergeFacetRoots(this.fieldName, this.baseFacetRoot, incomingFacetRoot);\n }\n }\n this.lastSearchTerm = state.searchTerm;\n this.lastSearchMode = state.searchMode;\n this.lastSortType = state.sortType;\n this.lastTimeTaken = timeTaken;\n }\n connectedCallback() {\n this.handleStateUpdate(this.searchStore);\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n this.handleStateUpdate(state);\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleCheckboxChange(path) {\n const isCheckboxChecked = !this.selectedPaths[path];\n if (isCheckboxChecked) {\n /**\n * Checkbox Checked: Add to the selectedPaths record\n * Uses spread operator here so UI updates.\n */\n this.selectedPaths = {\n ...this.selectedPaths,\n [path]: true,\n };\n }\n else {\n /**\n * Checkbox Uncheck: Remove any paths and sub-paths\n */\n const updatedPaths = Object.keys(this.selectedPaths).filter((testPath) => !testPath.includes(path));\n this.selectedPaths = updatedPaths.reduce((acc, str) => {\n acc[str] = true;\n return acc;\n }, {});\n }\n /**\n * Emit the paths array, with parent paths removed.\n */\n const paths = Object.keys(this.selectedPaths).filter((path) => this.selectedPaths[path]);\n const pathsWithParentPathsRemoved = removeSubstringMatches(paths);\n this.facetSelectionUpdated?.emit({ paths: pathsWithParentPathsRemoved });\n }\n formatLabel = (facetChild) => {\n const label = facetChild.path.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n formatSubLabel = (facetChild, facetChildAncestor) => {\n const facetChildPath = facetChild.path.substring(facetChildAncestor.path.length);\n const label = facetChildPath.replace(/^\\//, '');\n const count = facetChild.count;\n return `${label.replace(/-/g, ' ').replace(/\\b\\w/g, (char) => char.toUpperCase())} (${count})`;\n };\n render() {\n if (!this.fieldName) {\n return;\n }\n const firstFacet = this.facetRoot?.[this.fieldName];\n return (h(\"div\", { class: classNames('filtersListContainer', 'searchcraft-filters-list-container') }, !firstFacet && (h(\"p\", { class: 'searchcraft-facet-message' }, \"Enter a search to view facets.\")), firstFacet?.map((facetChild) => {\n const isChildSelected = facetChild.children\n ? facetChild.children?.some((child) => this.selectedPaths[child.path])\n : false;\n return (h(\"div\", { key: facetChild.path, class: classNames('searchcraft-filters-list-item') }, h(\"label\", { class: classNames('filterCheckboxLabel', 'searchcraft-filters-list-checkbox-label') }, h(\"input\", { checked: this.selectedPaths[facetChild.path], onChange: (_event) => this.handleCheckboxChange(facetChild.path), type: 'checkbox' }), isChildSelected ? (h(\"div\", { class: classNames('dashContainer', 'searchcraft-filter-list-dash-container') }, h(\"svg\", { width: '14', height: '3', viewBox: '0 0 14 3', fill: 'none' }, h(\"title\", null, \"Checkbox Dash\"), h(\"line\", { x1: '1.5', y1: '1.5', x2: '12.5', y2: '1.5', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round' })))) : (h(\"div\", { class: classNames('checkContainer', 'searchcraft-filter-list-check-container') }, h(\"svg\", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, h(\"title\", null, \"Checkbox Check\"), h(\"path\", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })))), this.formatLabel(facetChild)), facetChild.children && facetChild.children.length > 0 && (h(Fragment, null, facetChild.children.map((grandchild) => (h(\"label\", { key: grandchild.path, class: classNames('childFilterCheckboxLabel', 'searchcraft-child-filter-checkbox-label'), style: {\n display: this.selectedPaths[facetChild.path]\n ? 'flex'\n : 'none',\n } }, h(\"input\", { checked: this.selectedPaths[grandchild.path], onChange: (_event) => {\n this.handleCheckboxChange(grandchild.path);\n }, type: 'checkbox' }), h(\"div\", { class: classNames('checkContainer', 'searchcraft-filter-list-check-container') }, h(\"svg\", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none' }, h(\"title\", null, \"Checkbox Check\"), h(\"path\", { d: 'M13.9999 2L5.74988 10L1.99988 6.36364', stroke: 'white', \"stroke-width\": '3', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), this.formatSubLabel(grandchild, facetChild))))))));\n })));\n }\n}, [0, \"searchcraft-facet-list\", {\n \"fieldName\": [1, \"field-name\"],\n \"baseFacetRoot\": [32],\n \"facetRoot\": [32],\n \"selectedPaths\": [32],\n \"lastTimeTaken\": [32],\n \"hasNewSearchTerm\": [32],\n \"lastSearchTerm\": [32],\n \"lastSearchMode\": [32],\n \"lastSortType\": [32],\n \"unsubscribe\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-facet-list\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-facet-list\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftFacetList);\n }\n break;\n } });\n}\n\nexport { SearchcraftFacetList as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-7777d986.js.map","import { S as SearchcraftFacetList$1, d as defineCustomElement$1 } from './p-7777d986.js';\n\nconst SearchcraftFacetList = SearchcraftFacetList$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFacetList, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-facet-list.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { g as getMillis } from './p-6104fe5d.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftSlider = /*@__PURE__*/ proxyCustomElement(class SearchcraftSlider extends H {\n constructor() {\n super();\n this.__registerHost();\n this.rangeChanged = createEvent(this, \"rangeChanged\", 7);\n }\n /**\n * The maximum value allowed.\n */\n max = 100;\n /**\n * The minimum value allowed.\n */\n min = 0;\n /**\n * The granularity that the value must adhere to.\n */\n granularity = getMillis('month');\n /** The type of data allowed. */\n dataType = 'number';\n endValue = this.max;\n startValue = this.min;\n lastFocusedHandle = 'max';\n /**\n * When the range has changed.\n * */\n rangeChanged;\n componentDidLoad() {\n this.startValue = this.min;\n this.endValue = this.max;\n }\n emitUpdate = async () => {\n this.rangeChanged?.emit({\n startValue: this.startValue,\n endValue: this.endValue,\n });\n };\n handleStartValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'min';\n if (value <= this.endValue) {\n this.startValue = value;\n this.emitUpdate();\n }\n else {\n this.startValue = this.endValue;\n inputElement.value = `${this.endValue}`;\n }\n };\n handleEndValueChange = (event) => {\n const inputElement = event.target;\n const value = Number.parseInt(inputElement.value, 10);\n this.lastFocusedHandle = 'max';\n if (value >= this.startValue) {\n this.endValue = value;\n this.emitUpdate();\n }\n else {\n this.endValue = this.startValue;\n inputElement.value = `${this.startValue}`;\n }\n };\n render() {\n const rangeMin = this.min;\n const rangeMax = this.max;\n const startPercent = ((this.startValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n const endPercent = ((this.endValue - rangeMin) / (rangeMax - rangeMin)) * 100;\n const startLabel = this.dataType === 'number'\n ? this.startValue\n : new Date(this.startValue).getFullYear();\n const endLabel = this.dataType === 'number'\n ? this.endValue\n : new Date(this.endValue).getFullYear();\n return (h(\"div\", { key: 'ec4a36e1ce6534b7c077114086d759e0b1e7a24e', class: 'searchcraft-slider-container' }, h(\"div\", { key: '35487cbeaeeb23052631804704645ca929340f70', class: 'searchcraft-slider-range-container' }, h(\"div\", { key: '186e699def8e7a6e58e8ad5f04953ac1c6584344', class: 'searchcraft-slider-active-range', style: {\n left: `${startPercent}%`,\n width: `${endPercent - startPercent}%`,\n } }), h(\"input\", { key: '97638e2a1471888c2be47f7526e9dd98fea58683', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-min-handle'), max: this.max, min: this.min, onInput: this.handleStartValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'min' ? '2' : '1' }, type: 'range', value: this.startValue }), h(\"input\", { key: 'db2abded80b606d17bde1677e4acc09a85e6e20e', class: classNames('searchcraft-slider-input', 'searchcraft-slider-input-max-handle'), max: this.max, min: this.min, onInput: this.handleEndValueChange.bind(this), step: this.granularity, style: { zIndex: this.lastFocusedHandle === 'max' ? '2' : '1' }, type: 'range', value: this.endValue })), h(\"div\", { key: '83954b6955a872a17377d506d2d8458059acac03', class: 'searchcraft-slider-label-container' }, h(\"span\", { key: 'b5315b4438385ecf5df3f76579fdf102b6a8c39c', class: 'searchcraft-slider-label' }, startLabel), h(\"span\", { key: '875094ac7ee69e04c3a16407388dd27f167b3c8f', class: 'searchcraft-slider-label' }, endLabel))));\n }\n}, [0, \"searchcraft-slider\", {\n \"max\": [2],\n \"min\": [2],\n \"granularity\": [2],\n \"dataType\": [1, \"data-type\"],\n \"endValue\": [32],\n \"startValue\": [32],\n \"lastFocusedHandle\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-slider\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-slider\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSlider);\n }\n break;\n } });\n}\n\nexport { SearchcraftSlider as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-bb12ab5a.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftToggleButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftToggleButton extends H {\n constructor() {\n super();\n this.__registerHost();\n this.toggleUpdated = createEvent(this, \"toggleUpdated\", 7);\n }\n /**\n * The label.\n */\n label = 'Toggle';\n /**\n * The secondary label displayed below the main label.\n */\n subLabel;\n /**\n * When the toggle element is changed.\n */\n toggleUpdated;\n isActive = false;\n unsubscribe;\n lastSearchTerm;\n handleToggle = async () => {\n this.isActive = !this.isActive;\n this.toggleUpdated?.emit(this.isActive);\n };\n connectedCallback() {\n /** When the query changes, sets toggle button state back to inactive. */\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n if (state.searchTerm !== this.lastSearchTerm &&\n state.searchTerm.trim().length === 0) {\n this.isActive = false;\n }\n this.lastSearchTerm = state.searchTerm;\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n render() {\n return (h(\"div\", { key: '25f3acd2b5dd6837182c8f07c092c54c35542c2f', class: 'searchcraft-toggle-button-container' }, h(\"div\", { key: 'd2951f2673af55159ad6f39d381d272a3f9f872b' }, h(\"p\", { key: '2468e261d46b454ce896b614ca2a076d27a31a8b', class: 'searchcraft-toggle-button-label' }, this.label), this.subLabel && (h(\"p\", { key: '1d9887dc12f30fb1982cf0d8a692ebfeca8edc1a', class: 'searchcraft-toggle-button-sub-label' }, this.subLabel))), h(\"button\", { key: 'f51bb553d6b210233aa6ebfc4318aa521036d922', class: classNames('searchcraft-toggle-button-background', {\n active: this.isActive,\n }), onClick: this.handleToggle, type: 'button' }, h(\"div\", { key: 'a34339f1bb5ab4742d897b01b61fe6c8c23e7e1e', class: classNames('searchcraft-toggle-button-handle', {\n active: this.isActive,\n }) }))));\n }\n}, [0, \"searchcraft-toggle-button\", {\n \"label\": [1],\n \"subLabel\": [1, \"sub-label\"],\n \"isActive\": [32],\n \"unsubscribe\": [32],\n \"lastSearchTerm\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-toggle-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftToggleButton);\n }\n break;\n } });\n}\n\nexport { SearchcraftToggleButton as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-11b05b94.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { g as getMillis } from './p-6104fe5d.js';\nimport { d as defineCustomElement$4 } from './p-7777d986.js';\nimport { d as defineCustomElement$3 } from './p-bb12ab5a.js';\nimport { d as defineCustomElement$2 } from './p-11b05b94.js';\n\nconst SearchcraftFilterPanel$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftFilterPanel extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The items to filter.\n */\n items = [];\n unsubscribe;\n lastSearchTerm;\n searchStore = searchcraftStore.getState();\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n this.lastSearchTerm = state.searchTerm || '';\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleDateRangeChanged(fieldName, min, max) {\n const start = new Date(new Date(min).getFullYear(), 0, 1);\n const end = new Date(new Date(max).getFullYear() + 1, 0, 0);\n this.searchStore.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${start.toISOString()} TO ${end.toISOString()}]`,\n });\n this.searchStore.search();\n }\n handleNumericRangeChanged(fieldName, min, max) {\n this.searchStore.addRangeValueForIndexField({\n fieldName,\n value: `${fieldName}:[${min} TO ${max}]`,\n });\n this.searchStore.search();\n }\n handleFacetSelectionUpdated(fieldName, paths) {\n if (paths.length > 0) {\n this.searchStore.addFacetPathsForIndexField({\n fieldName,\n value: `${fieldName}: IN [${paths.join(' ')}]`,\n });\n }\n else {\n this.searchStore.removeFacetPathsForIndexField(fieldName);\n }\n this.searchStore.search();\n }\n handleExactMatchToggleUpdated(isActive) {\n this.searchStore.setSearchMode(isActive ? 'exact' : 'fuzzy');\n this.searchStore.search();\n }\n handleMostRecentToggleUpdated(isActive) {\n this.searchStore.setSortType(isActive ? 'desc' : 'asc');\n this.searchStore.search();\n }\n /**\n * Iterate through `items` and render them based on `type`\n */\n render() {\n return (h(\"div\", { key: '73ca2e0efab911c5095c23ba33e85a26cc440b4a', class: 'searchcraft-filter-panel' }, this.items.map((filterItem) => {\n switch (filterItem.type) {\n case 'dateRange': {\n const item = filterItem;\n const min = new Date(item.options.minDate).getTime();\n const max = new Date(item.options.maxDate).getTime();\n const granularityValue = getMillis(item.options.granularity);\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: min, max: max, granularity: granularityValue, dataType: 'date', onRangeChanged: (event) => {\n this.handleDateRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'numericRange': {\n const item = filterItem;\n // return date range slider\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-slider\", { min: item.options.min, max: item.options.max, granularity: item.options.granularity, onRangeChanged: (event) => {\n this.handleNumericRangeChanged(item.fieldName, event.detail.startValue, event.detail.endValue);\n } })));\n }\n case 'facets': {\n const item = filterItem;\n // return \"filters-list\"\n return (h(\"div\", { class: 'searchcraft-filter-panel-section' }, h(\"p\", { class: 'searchcraft-filter-panel-label' }, filterItem.label), h(\"searchcraft-facet-list\", { fieldName: item.fieldName, onFacetSelectionUpdated: (event) => {\n this.handleFacetSelectionUpdated(item.fieldName, event.detail.paths);\n } })));\n }\n case 'exactMatchToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleExactMatchToggleUpdated(event.detail);\n } }));\n }\n case 'mostRecentToggle': {\n const item = filterItem;\n return (h(\"searchcraft-toggle-button\", { label: item.label, subLabel: item.options.subLabel, onToggleUpdated: (event) => {\n this.handleMostRecentToggleUpdated(event.detail);\n } }));\n }\n }\n })));\n }\n}, [0, \"searchcraft-filter-panel\", {\n \"items\": [16],\n \"unsubscribe\": [32],\n \"lastSearchTerm\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-filter-panel\", \"searchcraft-facet-list\", \"searchcraft-slider\", \"searchcraft-toggle-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-filter-panel\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftFilterPanel$1);\n }\n break;\n case \"searchcraft-facet-list\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-slider\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-toggle-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftFilterPanel = SearchcraftFilterPanel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftFilterPanel, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-filter-panel.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\n\nconst SearchcraftInputLabel = /*@__PURE__*/ proxyCustomElement(class SearchcraftInputLabel extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The classname applied to the label element.\n */\n inputLabelClassName = '';\n label = '';\n render() {\n return (h(\"label\", { key: '528396d4be9f22ff0c02d95d8bcea056576aed41', class: classNames('searchcraft-input-label', this.inputLabelClassName), htmlFor: 'searchcraft-input-id' }, this.label));\n }\n}, [0, \"searchcraft-input-label\", {\n \"inputLabelClassName\": [1, \"input-label-class-name\"],\n \"label\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInputLabel);\n }\n break;\n } });\n}\n\nexport { SearchcraftInputLabel as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-e55a7970.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { d as defineCustomElement$3 } from './p-71cc28c1.js';\nimport { d as defineCustomElement$2 } from './p-0e393fe1.js';\nimport { d as defineCustomElement$1 } from './p-e55a7970.js';\n\nconst SearchcraftInput = /*@__PURE__*/ proxyCustomElement(class SearchcraftInput extends H {\n constructor() {\n super();\n this.__registerHost();\n this.inputFocus = createEvent(this, \"inputFocus\", 7);\n this.inputBlur = createEvent(this, \"inputBlur\", 7);\n this.inputInit = createEvent(this, \"inputInit\", 7);\n }\n /**\n * Whether or not to automatically submit the search term when the input changes.\n */\n autoSearch = true;\n /**\n * Where to place the search button.\n */\n buttonPlacement = 'none';\n /**\n * The label for the submit button.\n */\n buttonLabel;\n /**\n * The label rendered above the input.\n */\n inputLabel;\n /**\n * A custom styles object to be applied to the input element.\n */\n customStyles = {};\n /**\n * The input element's placeholder value.\n */\n placeholderValue = 'Enter Search';\n /**\n * The starting value of the input element.\n */\n searchTerm = '';\n /**\n * When the input becomes focused.\n */\n inputFocus;\n /**\n * When the input becomes unfocused.\n */\n inputBlur;\n /**\n * Event emitted when input initializes.\n */\n inputInit;\n inputValue = this.searchTerm;\n error = false;\n core;\n searchStore = searchcraftStore.getState();\n init() {\n if (this.core) {\n this.searchStore.initialize(this.core);\n this.inputInit?.emit();\n }\n }\n connectedCallback() {\n this.init();\n }\n onCoreChange() {\n this.init();\n }\n handleOnInput = (event) => {\n const input = event.target;\n this.inputValue = input.value;\n if (!this.autoSearch) {\n return;\n }\n this.performSearch(input.value);\n };\n performSearch = async (value) => {\n if (value === searchcraftStore.getState().searchTerm) {\n return;\n }\n this.searchTerm = value.trim();\n this.error = false;\n this.searchStore.setSearchTerm(this.searchTerm);\n try {\n await this.searchStore.search();\n }\n catch (error) {\n console.log(error);\n this.error = true;\n }\n };\n handleClearInput = () => {\n this.inputValue = '';\n this.searchTerm = '';\n this.searchStore.setSearchTerm('');\n this.searchStore.setSearchClientResponseItems([]);\n this.error = false;\n };\n handleFormSubmit = async (event) => {\n event.preventDefault();\n await this.performSearch(this.searchTerm);\n };\n render() {\n const validatedCustomStyles = parseCustomStyles(this.customStyles);\n const isShowingClearButton = this.inputValue.length > 0;\n const inputGridClassNames = classNames('searchcraft-input-grid', {\n 'searchcraft-input-grid-buttonLeft': this.buttonPlacement === 'left',\n 'searchcraft-input-grid-buttonRight': this.buttonPlacement === 'right',\n 'searchcraft-input-grid-buttonNone': this.buttonPlacement === 'none',\n });\n const shouldHaveVerticalGap = this.inputLabel || this.error;\n const inputGridStyles = {\n gap: shouldHaveVerticalGap ? '4px 8px' : '0px 8px',\n };\n return (h(\"form\", { key: '52760b113a209c51638bcb005e0b6c3d5bf9741d', class: 'searchcraft-input-form', onSubmit: this.handleFormSubmit }, h(\"div\", { key: '6b20020b8a67c9d860fca7da67150a8d75bd3313', class: inputGridClassNames, style: inputGridStyles }, h(\"div\", { key: '67bba2889e6fde70c4f349dfbd61d9a632c08301', class: 'searchcraft-input-button-wrapper' }, h(\"searchcraft-button\", { key: 'a839e1a67d238bfbe6d47857f6339e49d14f9560', onButtonClick: this.handleFormSubmit, label: this.buttonLabel })), this.inputLabel && (h(\"div\", { key: 'a2a69b7dbdf1142459d6ffad90dc26a38a76276d', class: 'searchcraft-input-label-wrapper' }, h(\"searchcraft-input-label\", { key: '621a4903821ba8c1854e3ff89d30a24dba3ed0fb', label: this.inputLabel }))), this.error && (h(\"div\", { key: 'b4cd633a139488cac185c38123b138fc5d51cd20', class: 'searchcraft-input-error-wrapper' }, h(\"searchcraft-error-message\", { key: 'ccadaf96ac8317b6415a83e6523816328e83eb3e', errorMessage: 'Something went wrong.' }))), h(\"div\", { key: '0f13777c2e5f806ce12fff9680d7862a27b2e260', class: 'searchcraft-input-wrapper' }, h(\"input\", { key: 'a9b58a486dfaadaedf3eeb9aec5e4c3c3548536b', autoComplete: 'off', class: 'searchcraft-input', onFocus: () => this.inputFocus?.emit(), onBlur: () => this.inputBlur?.emit(), onInput: (event) => {\n this.handleOnInput(event);\n }, placeholder: this.placeholderValue, style: validatedCustomStyles, type: 'text', value: this.inputValue }), h(\"div\", { key: 'a57e4f72ee1383e42158bbc9e35d47d2c468acf5', class: 'searchcraft-input-search-icon-wrapper' }, h(\"svg\", { key: 'c7bda92af1488981d5de08af0f9ae3064c76c354', class: 'searchcraft-input-search-icon', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'searchcraft-title' }, h(\"title\", { key: 'f4dc47ae6c88517eeaea574fe819423b3d6e6cb5', id: 'searchcraft-title' }, \"Searchcraft Search Icon Light\"), h(\"path\", { key: 'c77497591b4f31de0f3e008baa79c006fd0a2eb9', d: 'M17.5 17.5L13.875 13.875M15.8333 9.16667C15.8333 12.8486 12.8486 15.8333 9.16667 15.8333C5.48477 15.8333 2.5 12.8486 2.5 9.16667C2.5 5.48477 5.48477 2.5 9.16667 2.5C12.8486 2.5 15.8333 5.48477 15.8333 9.16667Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), isShowingClearButton && (h(\"button\", { key: 'e125b759eaa21dfdd4058bf36f3c10233f067835', type: 'button', class: 'searchcraft-input-clear-button', onClick: this.handleClearInput }, h(\"svg\", { key: 'b2767658bb9edbc51efd6430e051127b08c9ab83', class: 'searchcraft-input-clear-icon', viewBox: '0 0 22 22', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', \"aria-labelledby\": 'icon-title' }, h(\"title\", { key: '990ff3c8f207d09192e954b0f5d059e0683db2d4', id: 'icon-title' }, \"Searchcraft Clear Input Icon Light\"), h(\"path\", { key: '5322d9abb4d60a75869ca943a17157a32c502035', d: 'M14 8L8 14M8 8L14 14M21 11C21 16.5228 16.5228 21 11 21C5.47715 21 1 16.5228 1 11C1 5.47715 5.47715 1 11 1C16.5228 1 21 5.47715 21 11Z', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))))))));\n }\n static get watchers() { return {\n \"core\": [\"onCoreChange\"]\n }; }\n}, [0, \"searchcraft-input-form\", {\n \"autoSearch\": [4, \"auto-search\"],\n \"buttonPlacement\": [1, \"button-placement\"],\n \"buttonLabel\": [1, \"button-label\"],\n \"inputLabel\": [1, \"input-label\"],\n \"customStyles\": [1, \"custom-styles\"],\n \"placeholderValue\": [1, \"placeholder-value\"],\n \"searchTerm\": [1, \"search-term\"],\n \"core\": [16],\n \"inputValue\": [32],\n \"error\": [32]\n }, undefined, {\n \"core\": [\"onCoreChange\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-input-form\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-input-form\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftInput);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftInput as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-5bd5c3cb.js.map","import { S as SearchcraftInput, d as defineCustomElement$1 } from './p-5bd5c3cb.js';\n\nconst SearchcraftInputForm = SearchcraftInput;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputForm, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-input-form.js.map","import { S as SearchcraftInputLabel$1, d as defineCustomElement$1 } from './p-e55a7970.js';\n\nconst SearchcraftInputLabel = SearchcraftInputLabel$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftInputLabel, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-input-label.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\nimport { d as defineCustomElement$2 } from './p-71cc28c1.js';\n\nconst SearchcraftPagination$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPagination extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The custom styles object.\n */\n customStyles;\n // store vars\n searchTerm;\n searchResultsPerPage;\n searchResultsPage;\n searchResultsCount;\n // local vars\n searchResultsPagesCount = 1;\n searchResultsRangeMin = 1;\n searchResultsRangeMax = 1;\n // store functions\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n this.searchResultsRangeMin =\n (this.searchResultsPage - 1) * this.searchResultsPerPage + 1;\n this.searchResultsRangeMax =\n (this.searchResultsPerPage - 1) * this.searchResultsPerPage +\n this.searchResultsPerPage;\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n renderOddPaginationItem(page) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n renderEvenPaginationItem(page) {\n if (this.searchResultsPagesCount <= page) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n page < Math.ceil(this.searchResultsPagesCount / 2) // is the first or second even pagination item\n ? this.searchResultsPage <= page + 1\n : this.searchResultsPage >= page - 1) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === page,\n }), onClick: () => this.handleGoToPage(page), type: 'button' }, page)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item' }, \"...\")));\n }\n renderMiddlePaginationItem() {\n if (this.searchResultsPagesCount <= 3) {\n return;\n }\n if (this.searchResultsPagesCount <= 5 ||\n this.searchResultsPage <= 3 ||\n this.searchResultsPage >= this.searchResultsPagesCount - 2) {\n return (h(\"li\", null, h(\"button\", { class: classNames('searchcraft-pagination-item', {\n 'searchcraft-pagination-item-active': this.searchResultsPage === 3 ||\n this.searchResultsPage === this.searchResultsPagesCount - 2,\n }), type: 'button', onClick: () => this.handleGoToPage(this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3) }, this.searchResultsPage >= this.searchResultsPagesCount - 2\n ? this.searchResultsPagesCount - 2\n : 3)));\n }\n return (h(\"li\", null, h(\"span\", { class: 'searchcraft-pagination-item searchcraft-pagination-item-active' }, this.searchResultsPage)));\n }\n render() {\n // early return if there isn't a searchTerm or there is 1 or fewer pages of results\n if (!this.searchTerm || this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: classNames('searchcraft-pagination', parseCustomStyles(this.customStyles || {})) }, h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === 1, hierarchy: 'tertiary', onButtonClick: () => this.handleGoToPage(Math.max(1, this.searchResultsPage - 1)), label: 'Previous', iconPosition: 'left', icon: h(\"svg\", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Previous page icon\"), h(\"path\", { d: 'M12.5 15L7.5 10L12.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true })), h(\"ul\", { class: 'searchcraft-pagination-list' }, this.renderOddPaginationItem(1), this.renderEvenPaginationItem(2), this.renderMiddlePaginationItem(), this.renderEvenPaginationItem(this.searchResultsPagesCount > 4\n ? this.searchResultsPagesCount - 1\n : 4), this.renderOddPaginationItem(this.searchResultsPagesCount)), h(\"div\", { class: 'searchcraft-pagination-control' }, h(\"searchcraft-button\", { disabled: this.searchResultsPage === this.searchResultsPagesCount, hierarchy: 'tertiary', onButtonClick: () => {\n this.handleGoToPage(Math.min(this.searchResultsPagesCount, this.searchResultsPage + 1));\n }, label: 'Next', iconPosition: 'right', icon: h(\"svg\", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", null, \"Next page icon\"), h(\"path\", { d: 'M7.5 15L12.5 10L7.5 5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' })), iconOnly: true }))));\n }\n}, [0, \"searchcraft-pagination\", {\n \"customStyles\": [1, \"custom-styles\"],\n \"searchTerm\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsCount\": [32],\n \"searchResultsPagesCount\": [32],\n \"searchResultsRangeMin\": [32],\n \"searchResultsRangeMax\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-pagination\", \"searchcraft-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-pagination\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPagination$1);\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPagination = SearchcraftPagination$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPagination, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-pagination.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\n\nconst SearchcraftPopoverButton$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverButton extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n handleOnClick() {\n searchcraftStore.getState().setPopoverVisibility(true);\n }\n render() {\n return (h(\"button\", { key: 'a8ee70b49a5309cfb1363a272ea0870c48c59688', type: 'button', onClick: this.handleOnClick.bind(this) }, h(\"slot\", { key: '9ac712ed1f6e69d73e7ade3d42501fb67a02c7ff' })));\n }\n}, [4, \"searchcraft-popover-button\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-button\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverButton$1);\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverButton = SearchcraftPopoverButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverButton, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-popover-button.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { a as getDocumentValueFromSearchResultMapping } from './p-6104fe5d.js';\n\nconst SearchcraftPopoverListItem = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListItem extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n item;\n popoverResultMappings;\n /** The document position relative to the search results (For Measure) */\n documentPosition = 0;\n href;\n imageSrc;\n imageAlt;\n titleContent;\n subtitleContent;\n mapValuesFromDocument(document) {\n this.titleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.title);\n this.subtitleContent = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.subtitle);\n this.href = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.href);\n this.imageSrc = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageSource);\n this.imageAlt = getDocumentValueFromSearchResultMapping(document, this.popoverResultMappings?.imageAlt);\n }\n connectedCallback() {\n if (this.item) {\n this.mapValuesFromDocument(this.item.document);\n }\n }\n disconnectedCallback() { }\n handleLinkClick = () => {\n const state = searchcraftStore.getState();\n const searchcraft = state.getSearchcraftInstance();\n if (searchcraft) {\n const document_position = this.documentPosition;\n const search_term = state.searchTerm;\n const number_of_documents = state.searchClientResponseItems.length || 0;\n searchcraft.measureClient?.sendMeasureEvent('document_clicked', {\n document_position,\n number_of_documents,\n search_term,\n });\n }\n };\n render() {\n return (h(\"a\", { key: '870fae8c0019ea24d9ecd173a781a38e3b17f8de', class: 'searchcraft-popover-list-item', href: this.href, onClick: this.handleLinkClick.bind(this) }, this.imageSrc && (h(\"div\", { key: '9e200a2be177fed7f6303fdc1ba466fc47817b5d', class: 'searchcraft-popover-list-item-image-wrapper' }, h(\"img\", { key: '22124b2856cd41220ac852a1fbc94cbf2a1cd9f9', alt: this.imageAlt, src: this.imageSrc, class: 'searchcraft-popover-list-item-image' }))), h(\"div\", { key: 'b3f0bb6784a36befd044e71798915994093177ab', class: 'searchcraft-popover-list-item-info-wrapper' }, h(\"p\", { key: 'caa22a8d68b56814ee29498db48fe1c65d8d7644', class: 'searchcraft-popover-list-item-title' }, this.titleContent), h(\"p\", { key: '63e11be221d6f274855f7989b3a9dc4532c08e05', class: 'searchcraft-popover-list-item-subtitle' }, this.subtitleContent))));\n }\n}, [0, \"searchcraft-popover-list-item\", {\n \"item\": [16],\n \"popoverResultMappings\": [16],\n \"documentPosition\": [2, \"document-position\"],\n \"href\": [32],\n \"imageSrc\": [32],\n \"imageAlt\": [32],\n \"titleContent\": [32],\n \"subtitleContent\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListItem);\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListItem as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-3568414f.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { d as defineCustomElement$2 } from './p-05872320.js';\nimport { d as defineCustomElement$1 } from './p-3568414f.js';\n\nconst SearchcraftPopoverListView = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverListView extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The mappings that define how the data in the documents are mapped to the\n * list-view-item elements.\n */\n popoverResultMappings;\n /**\n * The items to render in the list view.\n */\n searchClientResponseItems;\n adClientResponseItems;\n searchResultsPage;\n searchResultsPerPage;\n config = searchcraftStore.getState().core?.config;\n renderWithADMAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.adClientResponseItems?.map((item) => (h(\"searchcraft-ad\", { adClientResponseItem: item, adSource: 'adMarketplace', key: item.id }))), this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n renderWithCustomAds() {\n const itemsToRender = [];\n const interstitialInterval = this.config?.customAdInterstitialInterval || 0;\n const interstitialQuantity = this.config?.customAdInterstitialQuantity || 1;\n const adStartQuantity = this.config?.customAdStartQuantity || 0;\n const adEndQuantity = this.config?.customAdEndQuantity || 0;\n const searchItems = this.searchClientResponseItems || [];\n // Renders ads at beginning\n for (let n = 0; n < adStartQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n // Renders search results + interstitial ads\n searchItems.forEach((item, index) => {\n if (interstitialInterval &&\n index % interstitialInterval === 0 &&\n index + interstitialInterval < searchItems.length &&\n index >= interstitialInterval) {\n for (let n = 0; n < interstitialQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${item.id}-ad-${n}` }));\n }\n }\n itemsToRender.push(h(\"searchcraft-popover-list-item\", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index }));\n });\n // Renders ads at end\n for (let n = 0; n < adEndQuantity; n++) {\n itemsToRender.push(h(\"searchcraft-ad\", { adSource: 'Custom', key: `${n}-ad` }));\n }\n return h(\"div\", { class: 'searchcraft-popover-list-view' }, itemsToRender);\n }\n renderWithNoAds() {\n return (h(\"div\", { class: 'searchcraft-popover-list-view' }, this.searchClientResponseItems?.map((item, index) => (h(\"searchcraft-popover-list-item\", { item: item, key: item.id, popoverResultMappings: this.popoverResultMappings, documentPosition: this.searchResultsPerPage * (this.searchResultsPage - 1) + index })))));\n }\n render() {\n switch (this.config?.adSource || 'None') {\n case 'adMarketplace':\n return this.renderWithADMAds();\n case 'Custom':\n return this.renderWithCustomAds();\n default:\n return this.renderWithNoAds();\n }\n }\n}, [0, \"searchcraft-popover-list-view\", {\n \"popoverResultMappings\": [16],\n \"searchClientResponseItems\": [16],\n \"adClientResponseItems\": [16],\n \"searchResultsPage\": [2, \"search-results-page\"],\n \"searchResultsPerPage\": [2, \"search-results-per-page\"]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-list-view\", \"searchcraft-ad\", \"searchcraft-popover-list-item\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverListView);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SearchcraftPopoverListView as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-b0bc5cee.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { d as defineCustomElement$8 } from './p-05872320.js';\nimport { d as defineCustomElement$7 } from './p-71cc28c1.js';\nimport { d as defineCustomElement$6 } from './p-0e393fe1.js';\nimport { d as defineCustomElement$5 } from './p-5bd5c3cb.js';\nimport { d as defineCustomElement$4 } from './p-e55a7970.js';\nimport { d as defineCustomElement$3 } from './p-3568414f.js';\nimport { d as defineCustomElement$2 } from './p-b0bc5cee.js';\n\nconst SearchcraftPopoverForm$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftPopoverForm extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The type of popover form to render.\n *\n * - `inline` - Renders inline with the rest of the content on the page. The search results pop over the page content.\n * - `fullscreen` - Renders in fullscreen view. Used together with the `searchcraft-popover-button` component.\n * - `modal` - Renders in a modal view. Used together with the `searchcraft-popover-button` component.\n */\n type = 'inline';\n /**\n * Formats the content rendered for each result.\n */\n popoverResultMappings;\n /**\n * The hotkey that activates the popover.\n */\n hotkey = 'k';\n /**\n * The hotkey modifier that activates the popover. Used together with the `hotkey` prop.\n */\n hotkeyModifier = 'meta';\n isPopoverVisibleInState = false;\n unsubscribe;\n searchClientResponseItems = [];\n adClientResponseItems = [];\n searchTerm;\n isFocused = false;\n breakpointSm = 576;\n breakpointMd = 768;\n breakpointLg = 992;\n searchResultsPage;\n searchResultsPerPage;\n modalElement;\n get hostElement() { return this; }\n componentDidLoad() {\n // Loads the breakpoint values into state\n const computedStyle = getComputedStyle(document.documentElement);\n this.breakpointSm = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-sm').trim());\n this.breakpointMd = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-md').trim());\n this.breakpointLg = Number.parseFloat(computedStyle.getPropertyValue('--sc-breakpoint-lg').trim());\n // Set popover visiblity in state\n this.isPopoverVisibleInState = searchcraftStore.getState().isPopoverVisible;\n // Add event listeners\n document.addEventListener('click', this.handleDocumentClick);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n // Subscribe to state events\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n if (this.isPopoverVisibleInState !== state.isPopoverVisible) {\n this.handlePopoverVisibilityChange(state.isPopoverVisible);\n }\n this.searchClientResponseItems = [...state.searchClientResponseItems];\n this.adClientResponseItems = [...state.adClientResponseItems];\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n });\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n document.removeEventListener('click', this.handleDocumentClick);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n handleDocumentClick = (event) => {\n if (!this.hostElement.contains(event.target)) {\n this.isFocused = false;\n }\n };\n /**\n * Handles when popover visibility is changed in state\n */\n handlePopoverVisibilityChange(isVisible) {\n this.isPopoverVisibleInState = isVisible;\n document.body.style.overflow = isVisible ? 'hidden' : 'auto';\n }\n /**\n * Actions to perform when various keys are pressed within the popover form.\n */\n handleDocumentKeyDown = (event) => {\n // Document-scoped actions\n if (event.key === this.hotkey) {\n this.handleHotkeyPressed(event);\n }\n // Document-scoped -> Popover-scoped keyboard event boundary\n if (!this.hostElement.contains(document.activeElement)) {\n return;\n }\n // Popover-scoped actions\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n event.preventDefault();\n this.focusOnNextListItem(event.key);\n break;\n case 'Escape':\n searchcraftStore.getState().setPopoverVisibility(false);\n break;\n default:\n return;\n }\n };\n handleInputInit = () => {\n const input = this.hostElement.querySelector('.searchcraft-input');\n input?.focus();\n };\n /**\n * When popover is `inline` and the viewport is at the smallest breakpoint,\n * focusing on the input will open a modal version of the popover form.\n */\n handleInputFocus() {\n this.isFocused = true;\n if (this.type === 'inline' &&\n window.visualViewport &&\n window.visualViewport.width < this.breakpointSm) {\n searchcraftStore.getState().setPopoverVisibility(true);\n // Appends a popover form of type=`modal` to the body\n if (!this.modalElement) {\n this.modalElement = document.createElement('searchcraft-popover-form');\n this.modalElement.popoverResultMappings = this.popoverResultMappings;\n this.modalElement.setAttribute('type', 'fullscreen');\n document.body.appendChild(this.modalElement);\n }\n }\n }\n handleModalBackdropClick(_event) {\n searchcraftStore.getState().setPopoverVisibility(false);\n }\n /**\n * When a hotkey is pressed, tests if the modifiers also match.\n * If modifiers match, toggles visibility of the popover modal.\n */\n handleHotkeyPressed(event) {\n if ((event.ctrlKey && this.hotkeyModifier === 'ctrl') ||\n (event.altKey && this.hotkeyModifier === 'alt') ||\n (event.metaKey && this.hotkeyModifier === 'meta')) {\n event.preventDefault();\n if (this.type === 'inline' && !this.isPopoverVisibleInState) {\n const hostElementInput = this.hostElement.querySelector('.searchcraft-input');\n hostElementInput?.focus();\n }\n else {\n searchcraftStore\n .getState()\n .setPopoverVisibility(!this.isPopoverVisibleInState);\n }\n }\n }\n handleCancelButtonClick() {\n searchcraftStore.getState().setPopoverVisibility(false);\n }\n /**\n * Moves focus to the next/previous list item in the list view. If you are at the top\n * of the list view, it moves focus back to the input.\n *\n * @param direction\n */\n focusOnNextListItem(direction) {\n const listItems = Array.from(document.querySelectorAll('a.searchcraft-popover-list-item')).filter((el) => !el.hasAttribute('disabled') && el.offsetParent !== null);\n const currentIndex = listItems.indexOf(document.activeElement);\n if (direction === 'ArrowDown') {\n listItems[(currentIndex + 1) % listItems.length]?.focus();\n }\n else if (direction === 'ArrowUp') {\n if (currentIndex >= 1) {\n listItems[currentIndex - 1]?.focus();\n }\n else {\n const input = document.querySelector('.searchcraft-input');\n if (input) {\n input.focus();\n requestAnimationFrame(() => {\n input.selectionEnd = input.value.length;\n input.selectionStart = input.value.length;\n });\n }\n }\n }\n }\n get hasResultsToShow() {\n return (this.searchTerm &&\n this.searchTerm?.trim()?.length > 0 &&\n this.searchClientResponseItems.length > 0);\n }\n renderInlinePopover() {\n const isListViewVisible = this.hasResultsToShow && this.isFocused;\n const popoverFormClassNames = classNames('searchcraft-popover-form searchcraft-popover-form-inline', {\n 'searchcraft-popover-form-active': isListViewVisible,\n });\n return (h(\"div\", { class: popoverFormClassNames }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this) }), isListViewVisible && (h(\"div\", { class: 'searchcraft-popover-inline-wrapper-outer' }, h(\"div\", { class: 'searchcraft-popover-inline-wrapper-inner' }, h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))))));\n }\n renderModalPopover() {\n if (this.isPopoverVisibleInState) {\n const popoverFormClassNames = classNames('searchcraft-popover-form', {\n 'searchcraft-popover-form-active': this.hasResultsToShow,\n });\n return (h(\"div\", { class: 'searchcraft-popover-form-modal' }, h(\"div\", { class: 'searchcraft-popover-form-modal-backdrop', onClick: this.handleModalBackdropClick }), h(\"div\", { class: 'searchcraft-popover-form-modal-inner' }, h(\"div\", { class: popoverFormClassNames }, h(\"div\", { class: 'searchcraft-popover-form-input-wrapper' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage }))))));\n }\n }\n renderFullscreenPopover() {\n if (this.isPopoverVisibleInState) {\n return (h(\"div\", { class: 'searchcraft-popover-form-fullscreen' }, h(\"div\", { class: 'searchcraft-popover-form' }, h(\"div\", { class: 'searchcraft-popover-form-input-wrapper' }, h(\"searchcraft-input-form\", { onInputFocus: this.handleInputFocus.bind(this), onInputInit: this.handleInputInit.bind(this) }), h(\"button\", { type: 'button', class: 'searchcraft-popover-form-cancel-button', onClick: this.handleCancelButtonClick.bind(this) }, \"Cancel\")), this.hasResultsToShow && (h(\"searchcraft-popover-list-view\", { popoverResultMappings: this.popoverResultMappings, searchClientResponseItems: this.searchClientResponseItems, adClientResponseItems: this.adClientResponseItems, searchResultsPage: this.searchResultsPage, searchResultsPerPage: this.searchResultsPerPage })))));\n }\n }\n render() {\n switch (this.type) {\n case 'inline':\n return this.renderInlinePopover();\n case 'modal':\n return this.renderModalPopover();\n case 'fullscreen':\n return this.renderFullscreenPopover();\n }\n }\n}, [0, \"searchcraft-popover-form\", {\n \"type\": [1],\n \"popoverResultMappings\": [16],\n \"hotkey\": [1],\n \"hotkeyModifier\": [1, \"hotkey-modifier\"],\n \"isPopoverVisibleInState\": [32],\n \"unsubscribe\": [32],\n \"searchClientResponseItems\": [32],\n \"adClientResponseItems\": [32],\n \"searchTerm\": [32],\n \"isFocused\": [32],\n \"breakpointSm\": [32],\n \"breakpointMd\": [32],\n \"breakpointLg\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"modalElement\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-popover-form\", \"searchcraft-ad\", \"searchcraft-button\", \"searchcraft-error-message\", \"searchcraft-input-form\", \"searchcraft-input-label\", \"searchcraft-popover-form\", \"searchcraft-popover-list-item\", \"searchcraft-popover-list-view\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-popover-form\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftPopoverForm$1);\n }\n break;\n case \"searchcraft-ad\":\n if (!customElements.get(tagName)) {\n defineCustomElement$8();\n }\n break;\n case \"searchcraft-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$7();\n }\n break;\n case \"searchcraft-error-message\":\n if (!customElements.get(tagName)) {\n defineCustomElement$6();\n }\n break;\n case \"searchcraft-input-form\":\n if (!customElements.get(tagName)) {\n defineCustomElement$5();\n }\n break;\n case \"searchcraft-input-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"searchcraft-popover-form\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n case \"searchcraft-popover-list-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"searchcraft-popover-list-view\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftPopoverForm = SearchcraftPopoverForm$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverForm, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-popover-form.js.map","import { S as SearchcraftPopoverListItem$1, d as defineCustomElement$1 } from './p-3568414f.js';\n\nconst SearchcraftPopoverListItem = SearchcraftPopoverListItem$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverListItem, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-popover-list-item.js.map","import { S as SearchcraftPopoverListView$1, d as defineCustomElement$1 } from './p-b0bc5cee.js';\n\nconst SearchcraftPopoverListView = SearchcraftPopoverListView$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftPopoverListView, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-popover-list-view.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { f as formatNumberWithCommas } from './p-6104fe5d.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\n\nconst SearchcraftResultsInfo$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftResultsInfo extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The custom formatter for the resulting string.\n *\n * @example\n * ```ts\n * resultsInfo.customFormatter = (range, count, responseTime) =>\n * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;\n * ```\n */\n customFormatter;\n /**\n * The custom styles object.\n */\n customStyles;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n // local vars\n count = 0;\n range = [0, 0];\n responseTime = '0';\n unsubscribe = () => { };\n connectedCallback() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsCount = state.searchResultsCount;\n // local vars\n this.count = this.searchResultsCount;\n this.range[0] =\n this.searchResultsPage <= 1\n ? 1\n : this.searchResultsPerPage * (this.searchResultsPage - 1);\n this.range[1] = this.searchResultsPerPage * this.searchResultsPage;\n this.range[1] =\n this.range[1] > this.searchResultsCount\n ? this.searchResultsCount\n : this.range[1];\n this.responseTime = ((state.searchResponseTimeTaken || 0) * 1000).toFixed(2);\n });\n }\n disconnectedCallback() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n render() {\n if (!this.searchTerm || this.searchResultsCount === 0) {\n return null;\n }\n return (h(\"p\", { class: classNames('searchcraft-results-info', parseCustomStyles(this.customStyles || {})) }, this.customFormatter\n ? this.customFormatter([\n formatNumberWithCommas(this.range[0]),\n formatNumberWithCommas(this.range[1]),\n ], formatNumberWithCommas(this.count), this.responseTime)\n : `${this.count} results found in ${this.responseTime}ms`));\n }\n}, [0, \"searchcraft-results-info\", {\n \"customFormatter\": [16],\n \"customStyles\": [1, \"custom-styles\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"count\": [32],\n \"range\": [32],\n \"responseTime\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-results-info\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-results-info\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftResultsInfo$1);\n }\n break;\n } });\n}\n\nconst SearchcraftResultsInfo = SearchcraftResultsInfo$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftResultsInfo, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-results-info.js.map","import { p as proxyCustomElement, H, c as createEvent, h } from './p-5365011f.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\n\nconst SearchcraftSelect = /*@__PURE__*/ proxyCustomElement(class SearchcraftSelect extends H {\n constructor() {\n super();\n this.__registerHost();\n this.selectChange = createEvent(this, \"selectChange\", 7);\n }\n /**\n * The caption displayed below the select input.\n */\n caption;\n /**\n * Whether the select input is disabled.\n */\n disabled = false;\n /**\n * The ID for the select input.\n */\n inputId;\n /**\n * The label of the select input.\n */\n label;\n /**\n * The ID for the label of the select input.\n */\n labelId;\n /**\n * The name of the select input.\n */\n name;\n /**\n * The options for the select input.\n */\n options = [];\n /**\n * A custom styles object.\n */\n customStyles;\n /**\n * The event fired when the select is changed.\n */\n selectChange;\n searchResultsPerPage;\n setSearchResultsPage = () => { };\n setSearchResultsPerPage = () => { };\n handleSelectChange = (event) => {\n this.selectChange.emit(event.target.value);\n };\n handleGoToPage(page) {\n this.setSearchResultsPage(page);\n }\n render() {\n return (h(\"div\", { key: '5024d49d89a3649a5de591d37ded304a9dfb36d9', class: classNames('searchcraft-select', parseCustomStyles(this.customStyles || {})) }, this.label && (h(\"label\", { key: '005aea9b190e5a6c041721e20395be23f76faab6', class: 'searchcraft-select-label', id: this.labelId || `${this.inputId}-label`, htmlFor: this.inputId }, this.label)), h(\"div\", { key: '209d56844c0bcd241e73bafcad24fac927fe7ffa', class: 'searchcraft-select-input-wrapper' }, h(\"select\", { key: '010c9e596ef45a303f84c0ac0fa54ab67556d7b6', \"aria-labelledby\": this.label ? this.labelId || `${this.inputId}-label` : undefined, class: 'searchcraft-select-input', disabled: this.disabled, id: this.inputId, name: this.name, onChange: this.handleSelectChange }, (typeof this.options === 'string'\n ? JSON.parse(this.options)\n : this.options).map(({ label, value, selected }) => {\n return (h(\"option\", { key: value, value: value, selected: selected }, label));\n })), h(\"svg\", { key: '51d9fb79381468ee0992475ba376df5a5961116c', class: 'searchcraft-select-input-icon', width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' }, h(\"title\", { key: '59186138953557764915d41708d4bcc23a9bb97f' }, \"Select dropdown icon\"), h(\"path\", { key: 'ec2c962df16cb68bdaf3e2c32e57d875a63957a9', d: 'M5 7.5L10 12.5L15 7.5', stroke: 'currentColor', \"stroke-width\": '1.5', \"stroke-linecap\": 'round', \"stroke-linejoin\": 'round' }))), this.caption && (h(\"p\", { key: '742bc2dbd8371938894d49bb37d429d1b7a07d7a', class: 'searchcraft-select-caption' }, this.caption))));\n }\n}, [0, \"searchcraft-select\", {\n \"caption\": [1],\n \"disabled\": [4],\n \"inputId\": [1, \"input-id\"],\n \"label\": [1],\n \"labelId\": [1, \"label-id\"],\n \"name\": [1],\n \"options\": [1],\n \"customStyles\": [1, \"custom-styles\"],\n \"searchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32],\n \"setSearchResultsPerPage\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-select\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSelect);\n }\n break;\n } });\n}\n\nexport { SearchcraftSelect as S, defineCustomElement as d };\n\n//# sourceMappingURL=p-bf6a086a.js.map","import { p as proxyCustomElement, H, h } from './p-5365011f.js';\nimport { s as searchcraftStore } from './p-6d8b0ead.js';\nimport { c as classNames } from './p-5cdc6210.js';\nimport { p as parseCustomStyles } from './p-d9551738.js';\nimport { d as defineCustomElement$2 } from './p-bf6a086a.js';\n\nconst SearchcraftSearchResultsPerPage$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftSearchResultsPerPage extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The amount the options will increase (e.g. 20 = [20, 40, 60, 80, 100]).\n * The base value is defined by the `searchResultsPerPage` option in the configuration.\n */\n increment = 20;\n /**\n * The custom styles object.\n */\n customStyles;\n // store vars\n searchTerm;\n searchResultsPage;\n searchResultsPerPage;\n searchResultsCount;\n searchResultsPagesCount;\n // local vars\n initialSearchResultsPerPage;\n // store functions\n setSearchResultsPerPage = () => { };\n setSearchResultsPage = () => { };\n unsubscribe = () => { };\n componentDidLoad() {\n this.unsubscribe = searchcraftStore.subscribe((state) => {\n // store vars\n this.searchTerm = state.searchTerm;\n this.searchResultsPerPage = state.searchResultsPerPage;\n this.searchResultsPage = state.searchResultsPage;\n this.searchResultsCount = state.searchResultsCount;\n // local vars\n this.searchResultsPagesCount = Math.ceil(this.searchResultsCount / this.searchResultsPerPage);\n // store functions\n this.setSearchResultsPage = state.setSearchResultsPage;\n this.setSearchResultsPerPage = state.setSearchResultsPerPage;\n });\n this.initialSearchResultsPerPage =\n searchcraftStore.getState().searchResultsPerPage;\n }\n disconnectedCallback() {\n this.unsubscribe?.();\n }\n render() {\n // early return if there isn't a searchTerm or there is 1 or fewer pages of results\n if (!this.searchTerm || this.searchResultsPagesCount <= 1) {\n return;\n }\n return (h(\"div\", { class: classNames('searchcraft-search-results-per-page', parseCustomStyles(this.customStyles || {})) }, h(\"div\", { class: 'searchcraft-search-results-per-page-select' }, h(\"label\", { class: 'searchcraft-search-results-per-page-select-label', htmlFor: 'searchcraft-search-results-per-page-select-input' }, \"Results Per Page\"), h(\"div\", { class: 'searchcraft-search-results-per-page-select-input' }, h(\"searchcraft-select\", { inputId: 'searchcraft-search-results-per-page-select-input', name: 'results-per-page', options: [...Array(5)].map((_, index) => {\n const value = this.initialSearchResultsPerPage +\n Number(this.increment) * index;\n return {\n label: `${value}`,\n value,\n };\n }), onSelectChange: (event) => {\n this.setSearchResultsPerPage(Number(event.detail));\n this.setSearchResultsPage(1);\n } })))));\n }\n}, [0, \"searchcraft-search-results-per-page\", {\n \"increment\": [8],\n \"customStyles\": [1, \"custom-styles\"],\n \"searchTerm\": [32],\n \"searchResultsPage\": [32],\n \"searchResultsPerPage\": [32],\n \"searchResultsCount\": [32],\n \"searchResultsPagesCount\": [32],\n \"initialSearchResultsPerPage\": [32],\n \"setSearchResultsPerPage\": [32],\n \"setSearchResultsPage\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-search-results-per-page\", \"searchcraft-select\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-search-results-per-page\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftSearchResultsPerPage$1);\n }\n break;\n case \"searchcraft-select\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst SearchcraftSearchResultsPerPage = SearchcraftSearchResultsPerPage$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSearchResultsPerPage, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-search-results-per-page.js.map","import { S as SearchcraftSelect$1, d as defineCustomElement$1 } from './p-bf6a086a.js';\n\nconst SearchcraftSelect = SearchcraftSelect$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSelect, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-select.js.map","import { S as SearchcraftSlider$1, d as defineCustomElement$1 } from './p-bb12ab5a.js';\n\nconst SearchcraftSlider = SearchcraftSlider$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftSlider, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-slider.js.map","import { p as proxyCustomElement, H } from './p-5365011f.js';\n\nconst styles = `:root{--sc-text-base-size: 1em;--sc-text-scale-ratio: 1.1;--sc-font-family: sans-serif;--sc-font-bold: 700;--sc-font-normal: 400;--sc-heading-1-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-2-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-3-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-4-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-5-font-size: calc( var(--sc-text-base-size) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) );--sc-heading-6-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) );--sc-body-font-size: calc(var(--sc-text-base-size));--sc-body-small-font-size: calc( var(--sc-text-base-size) / ( var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) * var(--sc-text-scale-ratio) ) )}:root{--sc-border-radius: 8px;--sc-border-radius-sm: calc(var(--sc-border-radius) / 2);--sc-border-radius-lg: calc(var(--sc-border-radius) * 2)}:root{--sc-breakpoint-sm: 576px;--sc-breakpoint-md: 768px;--sc-breakpoint-lg: 992px}:root{--sc-surface-neutral-primary: var(--sc-color-background, #ffffff);--sc-color-background-hover: hsl( from var(--sc-color-background) h s clamp(10, calc(l + 5), 95) );--sc-surface-neutral-primary-hover: var(--sc-color-background-hover, #fafafa);--sc-color-background-active: hsl( from var(--sc-color-background) h s clamp(5, calc(l - 5), 90) );--sc-surface-neutral-primary-active: var( --sc-color-background-active, #f7f7f7 );--sc-surface-neutral-secondary: var( --sc-color-background-secondary, var(--sc-color-background, #f3f3f3) );--sc-surface-neutral-secondary-hover: var( --sc-color-background-secondary-hover, var(--sc-color-background-hover, #e6e6e6) );--sc-surface-neutral-secondary-active: var( --sc-color-background-secondary-active, var(--sc-color-background-active, #e0e0e0) );--sc-surface-neutral-light: #ffffff;--sc-content-neutral-primary: var(--sc-color-foreground, #292929);--sc-color-foreground-secondary: hsl( from var(--sc-color-foreground) h s clamp(10, calc(l + 5), 90) );--sc-content-neutral-secondary: var(--sc-color-foreground-secondary, #404040);--sc-border-neutral: rgba(0, 0, 0, 0.1);--sc-surface-brand-primary: var(--sc-color-brand, #000000);--sc-color-brand-hover: hsl( from var(--sc-color-brand) h s clamp(20, calc(l + 5), 95) );--sc-surface-brand-primary-hover: var(--sc-color-brand-hover, #2e2e2e);--sc-color-brand-active: hsl( from var(--sc-color-brand) h s clamp(10, calc(l - 5), 85) );--sc-surface-brand-primary-active: var(--sc-color-brand-active, #292929);--sc-surface-brand-secondary: var( --sc-color-brand-secondary, var(--sc-color-brand, #e6e6e6) );--sc-surface-brand-secondary-hover: var( --sc-color-brand-secondary-hover, var(--sc-color-brand-hover, #ebebeb) );--sc-surface-brand-secondary-active: var( --sc-color-brand-secondary-active, var(--sc-color-brand-active, #e0e0e0) );--sc-content-brand: var( --sc-color-brand-text, var(--sc-surface-brand-primary) );--sc-content-brand-on-primary: #ffffff;--sc-border-brand: var(--sc-surface-brand-primary);--sc-surface-success-primary: var(--sc-color-success, #008000);--sc-color-success-primary-hover: hsl(from var(--sc-color-success) h s 30);--sc-surface-success-primary-hover: var( --sc-color-success-primary-hover, #009900 );--sc-color-success-primary-active: hsl(from var(--sc-color-success) h s 20);--sc-surface-success-primary-active: var( --sc-color-success-primary-active, #006600 );--sc-color-success-secondary: hsl(from var(--sc-color-success) h s 90);--sc-surface-success-secondary: var(--sc-color-success-secondary, #ccffcc);--sc-color-success-secondary-hover: hsl( from var(--sc-color-success-secondary) h s 95 );--sc-surface-success-secondary-hover: var( --sc-color-success-secondary-hover, #e6ffe6 );--sc-color-success-secondary-active: hsl( from var(--sc-color-success-secondary) h s 85 );--sc-surface-success-secondary-active: var( --sc-color-success-secondary-active, #b2ffb2 );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30) );--sc-content-success-on-primary: #ffffff;--sc-border-success: var(--sc-surface-success-primary);--sc-surface-caution-primary: var(--sc-color-caution, #cc6600);--sc-color-caution-primary-hover: hsl(from var(--sc-color-caution) h s 30);--sc-surface-caution-primary-hover: var( --sc-color-caution-primary-hover, #e57300 );--sc-color-caution-primary-active: hsl(from var(--sc-color-caution) h s 20);--sc-surface-caution-primary-active: var( --sc-color-caution-primary-active, #b25a00 );--sc-color-caution-secondary: hsl(from var(--sc-color-caution) h s 90);--sc-surface-caution-secondary: var(--sc-color-caution-secondary, #ffd9b3);--sc-color-caution-secondary-hover: hsl( from var(--sc-color-caution-secondary) h s 95 );--sc-surface-caution-secondary-hover: var( --sc-color-caution-secondary-hover, #ffe5cc );--sc-color-caution-secondary-active: hsl( from var(--sc-color-caution-secondary) h s 85 );--sc-surface-caution-secondary-active: var( --sc-color-caution-secondary-active, #ffcc99 );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30) );--sc-content-caution-on-primary: #ffffff;--sc-border-caution: var(--sc-surface-caution-primary);--sc-surface-danger-primary: var(--sc-color-danger, #cc0000);--sc-color-danger-primary-hover: hsl(from var(--sc-color-danger) h s 30);--sc-surface-danger-primary-hover: var( --sc-color-danger-primary-hover, #e50000 );--sc-color-danger-primary-active: hsl(from var(--sc-color-danger) h s 20);--sc-surface-danger-primary-active: var( --sc-color-danger-primary-active, #b30000 );--sc-color-danger-secondary: hsl(from var(--sc-color-danger) h s 90);--sc-surface-danger-secondary: var(--sc-color-danger-secondary, #ffcccc);--sc-color-danger-secondary-hover: hsl( from var(--sc-color-danger-secondary) h s 95 );--sc-surface-danger-secondary-hover: var( --sc-color-danger-secondary-hover, #ffe7e7 );--sc-color-danger-secondary-active: hsl( from var(--sc-color-danger-secondary) h s 85 );--sc-surface-danger-secondary-active: var( --sc-color-danger-secondary-active, #ffb3b3 );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30) );--sc-content-danger-on-primary: #ffffff;--sc-border-danger: var(--sc-surface-danger-primary);--sc-color-disabled: hsl(from var(--sc-color-page-primary) h s calc(l * 0.5));--sc-surface-disabled: var(--sc-color-disabled, #d9d9d9);--sc-color-disabled-text: hsl( from var(--sc-color-text-primary) h s calc(l * 0.5) );--sc-content-disabled: var(--sc-color-disabled-text, #737373);--sc-content-disabled-on-disabled: var(--sc-color-disabled-text, #737373)}@supports(hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){:root{--sc-color-background-hover: hsl( from var(--sc-color-background) h s clamp(10%, calc(l + 5%), 95%) );--sc-color-background-active: hsl( from var(--sc-color-background) h s clamp(5%, calc(l - 5%), 90%) );--sc-color-foreground-secondary: hsl( from var(--sc-color-foreground) h s clamp(10%, calc(l + 5%), 90%) );--sc-color-brand-hover: hsl( from var(--sc-color-brand) h s clamp(20%, calc(l + 5%), 95%) );--sc-color-brand-active: hsl( from var(--sc-color-brand) h s clamp(10%, calc(l - 5%), 85%) );--sc-color-success-primary-hover: hsl(from var(--sc-color-success) h s 30%);--sc-color-success-primary-active: hsl( from var(--sc-color-success) h s 20% );--sc-color-success-secondary: hsl(from var(--sc-color-success) h s 90%);--sc-color-success-secondary-hover: hsl( from var(--sc-color-success-secondary) h s 95% );--sc-color-success-secondary-active: hsl( from var(--sc-color-success-secondary) h s 85% );--sc-content-success: var( --sc-color-brand-text, hsl(from var(--sc-surface-success-primary) h s 30%) );--sc-color-caution-primary-hover: hsl(from var(--sc-color-caution) h s 30%);--sc-color-caution-primary-active: hsl( from var(--sc-color-caution) h s 20% );--sc-color-caution-secondary: hsl(from var(--sc-color-caution) h s 90%);--sc-color-caution-secondary-hover: hsl( from var(--sc-color-caution-secondary) h s 95% );--sc-color-caution-secondary-active: hsl( from var(--sc-color-caution-secondary) h s 85% );--sc-content-caution: var( --sc-color-caution-text, hsl(from var(--sc-surface-caution-primary) h s 30%) );--sc-color-danger-primary-hover: hsl(from var(--sc-color-danger) h s 30%);--sc-color-danger-primary-active: hsl(from var(--sc-color-danger) h s 20%);--sc-color-danger-secondary: hsl(from var(--sc-color-danger) h s 90%);--sc-color-danger-secondary-hover: hsl( from var(--sc-color-danger-secondary) h s 95% );--sc-color-danger-secondary-active: hsl( from var(--sc-color-danger-secondary) h s 85% );--sc-content-danger: var( --sc-color-caution-text, hsl(from var(--sc-surface-danger-primary) h s 30%) )}}.searchcraft-custom-ad{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.searchcraft-adm-ad{all:unset;display:flex;flex-direction:row;cursor:pointer;gap:8px;padding-right:var(--sc-popover-list-item-padding-horizontal);padding-left:var(--sc-popover-list-item-padding-horizontal);padding-top:var(--sc-popover-list-item-padding-vertical);padding-bottom:var(--sc-popover-list-item-padding-vertical);border:1px solid blue}.searchcraft-adm-ad:focus{background-color:var(--sc-surface-neutral-secondary-active);color:var(--sc-content-neutral-secondary)}.searchcraft-adm-ad:hover{background-color:var(--sc-surface-neutral-secondary-hover);color:var(--sc-content-neutral-secondary)}.searchcraft-adm-ad-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:inherit}.searchcraft-adm-ad-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:inherit}.searchcraft-adm-ad-image-wrapper{width:var(--sc-popover-list-item-image-size);height:var(--sc-popover-list-item-image-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}.searchcraft-adm-ad-image{max-width:var(--sc-popover-list-item-image-size);max-height:var(--sc-popover-list-item-image-size)}.searchcraft-adm-ad-info-wrapper{display:flex;flex-direction:column;gap:8px;justify-content:center}.searchcraft-search-result-container{all:unset;align-items:flex-start;border-radius:var(--sc-border-radius-lg);display:flex;flex-direction:column;gap:16px;padding:8px;color:inherit;background-color:var(--sc-surface-neutral-primary)}@media(min-width: 768px){.searchcraft-search-result-container{flex-direction:row}}a.searchcraft-search-result-container{cursor:pointer;transition:background-color 100ms}.searchcraft-base-search-result-content-container{flex:1;display:flex;flex-direction:column;gap:8px}.searchcraft-search-result-image{border-radius:calc(--sc-border-radius-lg - 8px);border-radius:calc(var(--sc-border-radius-lg) - 8px);width:100%}@media(min-width: 768px){.searchcraft-search-result-image{width:200px}}.searchcraft-base-search-result-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin:0}.searchcraft-base-search-result-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-disabled);margin:0}.searchcraft-base-search-result-body-content{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-neutral-secondary);margin:0}.searchcraft-base-search-result-footer-content{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-disabled);margin:0}.searchcraft-search-results-container{display:flex;flex-direction:column;justify-content:center;gap:16px}.searchcraft-search-results-empty-state-container{text-align:center}.searchcraft-search-results-error-message-container{text-align:center}.searchcraft-button{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);background:none;border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;display:flex;gap:4px;padding:12px;position:relative}.searchcraft-button.searchcraft-button-disabled{cursor:not-allowed}.searchcraft-button-primary{background-color:var(--sc-surface-brand-primary);color:var(--sc-content-brand-on-primary);font-weight:var(--sc-font-bold)}.searchcraft-button-primary:hover{background-color:var(--sc-surface-brand-primary-hover)}.searchcraft-button-primary:focus{border-color:var(--sc-border-primary)}.searchcraft-button-primary:active{background-color:var(--sc-surface-brand-primary-active)}.searchcraft-button-primary.searchcraft-button-disabled,.searchcraft-button-primary.searchcraft-button-disabled:hover,.searchcraft-button-primary.searchcraft-button-disabled:focus,.searchcraft-button-primary.searchcraft-button-disabled:active{background-color:var(--sc-surface-disabled);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-button-tertiary{background-color:var(--sc-surface-neutral-primary);color:var(--sc-content-brand);font-weight:var(--sc-font-normal)}.searchcraft-button-tertiary:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-button-tertiary:focus{background-color:var(--sc-surface-neutral-light);border-color:var(--sc-border-primary)}.searchcraft-button-tertiary:active{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-button-tertiary.searchcraft-button-disabled,.searchcraft-button-tertiary.searchcraft-button-disabled:hover,.searchcraft-button-tertiary.searchcraft-button-disabled:focus,.searchcraft-button-tertiary.searchcraft-button-disabled:active{background-color:var(--sc-surface-neutral-light);border-color:rgba(0,0,0,0);color:var(--sc-content-disabled)}.searchcraft-error-message{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-danger);margin:0}.filtersListContainer{width:100%}.filterCheckboxLabel{align-items:center;color:var(--sc-content-brand);display:flex;font-family:var(--sc-font-family);font-size:14px;font-weight:600;gap:14px;position:relative;-webkit-font-smoothing:antialiased}.filterCheckboxLabel input[type=checkbox]{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary);border:1px solid var(--sc-surface-disabled);border-radius:8px;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.filterCheckboxLabel input[type=checkbox]:focus{outline:2px solid var(--sc-surface-brand-primary)}.filterCheckboxLabel input[type=checkbox]:checked{background-color:var(--sc-surface-brand-primary);position:relative}.filterCheckboxLabel input[type=checkbox]:checked+.checkContainer{display:block}.filterCheckboxLabel input[type=checkbox]:checked+.dashContainer{display:block}.childFilterCheckboxLabel{align-items:center;color:var(--sc-content-primary);display:flex;font-family:var(--sc-font-family);font-size:14px;font-weight:600;gap:12px;margin-left:24px;position:relative}.childFilterCheckboxLabel input[type=checkbox]{align-items:center;appearance:none;background-color:var(--sc-surface-neutral-secondary-hover);border:1px solid var(--sc-surface-disabled);border-radius:8px;cursor:pointer;display:flex;height:24px;justify-content:center;position:relative;width:24px;-webkit-font-smoothing:antialiased}.childFilterCheckboxLabel input[type=checkbox]:focus{outline:2px solid var(--sc-surface-brand-primary)}.childFilterCheckboxLabel input[type=checkbox]:checked{background-color:var(--sc-surface-brand-primary);position:relative}.childFilterCheckboxLabel input[type=checkbox]:checked+.checkContainer{display:block}.childFilterCheckboxLabel input[type=checkbox]:checked+.dashContainer{display:block}.checkContainer{display:none;height:16px;width:16px;position:absolute;top:9px;left:8px}.dashContainer{display:none;height:3px;width:14px;position:absolute;top:3px;left:9px}.searchcraft-facet-message{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-disabled);text-align:center}.searchcraft-filter-panel{display:flex;flex-direction:column;gap:16px}.searchcraft-filter-panel-section{display:flex;flex-direction:column;gap:8px}.searchcraft-filter-panel-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-bold)}:root{--sc-input-border-radius: var(--sc-border-radius);--sc-input-search-icon-size: 20px;--sc-input-clear-icon-size: 20px;--sc-input-padding-left: 44px;--sc-input-padding-right: 44px}.searchcraft-input-grid{display:grid;gap:4px 8px}.searchcraft-input-grid-buttonLeft{grid-template-rows:repeat(3, auto);grid-template-columns:auto 1fr}.searchcraft-input-grid-buttonLeft .searchcraft-input-button-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonLeft .searchcraft-input-label-wrapper{grid-column:2/span 1;grid-row:1/span 1}.searchcraft-input-grid-buttonLeft .searchcraft-input-error-wrapper{grid-column:2/span 1;grid-row:3/span 1}.searchcraft-input-grid-buttonLeft .searchcraft-input-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonRight{grid-template-rows:repeat(3, auto);grid-template-columns:1fr auto}.searchcraft-input-grid-buttonRight .searchcraft-input-button-wrapper{grid-column:2/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonRight .searchcraft-input-label-wrapper{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-grid-buttonRight .searchcraft-input-error-wrapper{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-grid-buttonRight .searchcraft-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-grid-buttonNone{grid-template-rows:repeat(3, auto);grid-template-columns:auto}.searchcraft-input-grid-buttonNone .searchcraft-input-button-wrapper{display:none}.searchcraft-input-grid-buttonNone .searchcraft-input-label-wrapper{grid-column:1/span 1;grid-row:1/span 1}.searchcraft-input-grid-buttonNone .searchcraft-input-error-wrapper{grid-column:1/span 1;grid-row:3/span 1}.searchcraft-input-grid-buttonNone .searchcraft-input-wrapper{grid-column:1/span 1;grid-row:2/span 1}.searchcraft-input-wrapper{position:relative;display:flex}.searchcraft-input{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);background-color:var(--sc-surface-neutral-secondary);border-radius:var(--sc-input-border-radius);border:none;color:var(--sc-content-neutral-primary);outline:none;padding-left:var(--sc-input-padding-left);padding-right:var(--sc-input-padding-right);padding-top:12px;padding-bottom:12px;flex:1}.searchcraft-input::placeholder{color:var(--sc-content-disabled)}.searchcraft-input:focus{outline:var(--sc-border-brand) solid 2px}.searchcraft-input:focus::placeholder{opacity:0}.searchcraft-input.error{color:var(--sc-content-danger);outline:var(--sc-border-danger) solid 2px}.searchcraft-input.error:focus{outline:var(--sc-border-danger) solid 2px}.searchcraft-input-search-icon-wrapper{align-items:center;justify-content:center;display:flex;position:absolute;pointer-events:none;bottom:0;left:0;top:0;width:var(--sc-input-padding-left)}.searchcraft-input-search-icon{pointer-events:none;width:var(--sc-input-search-icon-size);height:var(--sc-input-search-icon-size);color:var(--sc-content-neutral-secondary)}.searchcraft-input-clear-button{all:unset;align-items:center;justify-content:center;cursor:pointer;display:flex;position:absolute;border:none;outline:none;bottom:0;right:0;top:0;width:var(--sc-input-padding-right)}.searchcraft-input-clear-icon{width:var(--sc-input-clear-icon-size);height:var(--sc-input-clear-icon-size);color:var(--sc-content-brand)}.searchcraft-input-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);color:var(--sc-content-neutral-primary);font-weight:var(--sc-font-bold);margin-top:4px;margin-bottom:4px}:root{--sc-popover-form-border-radius: var(--sc-border-radius);--sc-popover-list-view-height: 400px;--sc-popover-list-item-image-size: 60px;--sc-popover-list-item-padding-horizontal: 8px;--sc-popover-list-item-padding-vertical: 8px;--sc-popover-modal-max-width: 570px}.searchcraft-popover-form{display:flex;flex-direction:column;flex:1}.searchcraft-popover-form .searchcraft-popover-form-input-wrapper{padding:12px;background-color:var(--sc-surface-neutral-secondary);display:flex;flex-direction:row;gap:4px}.searchcraft-popover-form .searchcraft-popover-form-input-wrapper>searchcraft-input-form{flex:1}.searchcraft-popover-form .searchcraft-popover-form-cancel-button{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);border:0;outline:0;padding:0;flex-shrink:0;background:none;cursor:pointer;padding-left:12px;padding-right:12px}.searchcraft-popover-form .searchcraft-popover-form-cancel-button:hover{background-color:var(--sc-surface-brand-secondary-hover)}.searchcraft-popover-form .searchcraft-popover-form-cancel-button:focus{background-color:var(--sc-surface-brand-secondary-active)}.searchcraft-popover-form-inline .searchcraft-input{border-top-left-radius:var(--sc-popover-form-border-radius);border-top-right-radius:var(--sc-popover-form-border-radius);border-bottom-left-radius:var(--sc-popover-form-border-radius);border-bottom-right-radius:var(--sc-popover-form-border-radius);border:none;outline:none}.searchcraft-popover-form-inline.searchcraft-popover-form-active .searchcraft-input{border-top-left-radius:var(--sc-popover-form-border-radius);border-top-right-radius:var(--sc-popover-form-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.searchcraft-popover-form-inline .searchcraft-popover-inline-wrapper-outer{position:relative}.searchcraft-popover-form-inline .searchcraft-popover-inline-wrapper-inner{position:absolute;height:var(--sc-popover-list-view-height);z-index:1000;width:100%}.searchcraft-popover-form-inline .searchcraft-popover-list-view{display:flex;flex-direction:column;overflow:auto;background-color:var(--sc-surface-neutral-secondary);border-bottom-left-radius:var(--sc-popover-form-border-radius);border-bottom-right-radius:var(--sc-popover-form-border-radius);max-height:var(--sc-popover-list-view-height)}.searchcraft-popover-form-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:0;background-color:var(--sc-surface-neutral-secondary)}@media(min-width: 576px){.searchcraft-popover-form-modal{padding:16px;background-color:rgba(0,0,0,0)}}.searchcraft-popover-form-modal .searchcraft-input{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);outline-width:1px;outline-color:var(--sc-border-neutral)}.searchcraft-popover-form-modal .searchcraft-popover-form-modal-backdrop{position:absolute;inset:0;background-color:rgba(0,0,0,.5);display:none}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-form-modal-backdrop{display:block}}.searchcraft-popover-form-modal .searchcraft-popover-form-modal-inner{position:absolute;inset:0;z-index:1002;margin-top:0px;display:flex;border-radius:var(--sc-popover-form-border-radius);overflow:hidden}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-form-modal-inner{inset:auto;position:relative;width:100%;margin-top:100px;max-width:var(--sc-popover-modal-max-width)}}.searchcraft-popover-form-modal .searchcraft-popover-list-view{display:flex;flex-direction:column;overflow:auto;background-color:var(--sc-surface-neutral-secondary);border-bottom-left-radius:0;border-bottom-right-radius:0}@media(min-width: 576px){.searchcraft-popover-form-modal .searchcraft-popover-list-view{max-height:var(--sc-popover-list-view-height)}}.searchcraft-popover-form-modal searchcraft-popover-list-view{overflow:scroll}@media(min-width: 576px){.searchcraft-popover-form-modal searchcraft-popover-list-view{overflow:auto}}.searchcraft-popover-form-fullscreen{position:fixed;inset:0;z-index:1000;background-color:var(--sc-surface-neutral-secondary)}.searchcraft-popover-form-fullscreen .searchcraft-popover-form{position:absolute;inset:0}.searchcraft-popover-form-fullscreen .searchcraft-input{border-radius:calc(--sc-popover-form-border-radius - 12px);border-radius:calc(var(--sc-popover-form-border-radius) - 12px);outline-width:1px;outline-color:var(--sc-border-neutral)}.searchcraft-popover-form-fullscreen searchcraft-popover-list-view{overflow:scroll}.searchcraft-popover-list-item{all:unset;color:var(--sc-content-neutral-secondary);display:flex;flex-direction:row;cursor:pointer;gap:8px;padding-right:var(--sc-popover-list-item-padding-horizontal);padding-left:var(--sc-popover-list-item-padding-horizontal);padding-top:var(--sc-popover-list-item-padding-vertical);padding-bottom:var(--sc-popover-list-item-padding-vertical)}.searchcraft-popover-list-item:focus{background-color:var(--sc-surface-neutral-secondary-active);color:var(--sc-content-neutral-secondary)}.searchcraft-popover-list-item:hover{background-color:var(--sc-surface-neutral-secondary-hover);color:var(--sc-content-neutral-secondary)}.searchcraft-popover-list-item-title{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:inherit}.searchcraft-popover-list-item-subtitle{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:inherit}.searchcraft-popover-list-item-image-wrapper{width:var(--sc-popover-list-item-image-size);height:var(--sc-popover-list-item-image-size);display:flex;align-items:center;justify-content:center;flex-shrink:0}.searchcraft-popover-list-item-image{max-width:var(--sc-popover-list-item-image-size);max-height:var(--sc-popover-list-item-image-size)}.searchcraft-popover-list-item-info-wrapper{display:flex;flex-direction:column;gap:8px;justify-content:center}.searchcraft-results-info{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);color:var(--sc-content-primary);margin:0}.searchcraft-slider-container{align-items:center;display:flex;flex-direction:column;gap:10px;width:100%}.searchcraft-slider-range-container{align-items:center;background-color:var(--sc-surface-disabled);border-radius:999px;display:flex;position:relative;height:4px;width:100%}.searchcraft-slider-range-container::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range-container .searchcraft-slider-active-range{background-color:var(--sc-surface-brand-primary);border-radius:2px;height:4px;position:absolute;top:50%;transform:translateY(-50%);z-index:0}.searchcraft-slider-range-container .searchcraft-slider-active-range::-webkit-slider-runnable-track{pointer-events:none}.searchcraft-slider-range-container .searchcraft-slider-active-range::-moz-range-track{pointer-events:none}.searchcraft-slider-range-container .searchcraft-slider-input{appearance:none;background:rgba(0,0,0,0);border-radius:2px;height:4px;margin:0;outline:none;pointer-events:none;position:absolute;width:100%;-webkit-appearance:none}.searchcraft-slider-range-container .searchcraft-slider-input::-webkit-slider-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:2px solid var(--sc-border-neutral);cursor:pointer;height:20px;pointer-events:all;width:20px;-webkit-appearance:none}.searchcraft-slider-range-container .searchcraft-slider-input::-moz-range-thumb{background-color:var(--sc-surface-neutral-light);border-radius:50%;border:2px solid var(--sc-border-neutral);cursor:pointer;height:20px;pointer-events:all;width:20px}.searchcraft-slider-label-container{color:var(--sc-content-primary);display:flex;font-family:\"Source Sans Pro\",sans-serif;font-size:15px;font-weight:600;justify-content:space-between;margin-top:10px;width:100%}.searchcraft-slider-label{min-width:30px;text-align:center}.searchcraft-toggle-button-container{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.searchcraft-toggle-button-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);margin:0;color:var(--sc-content-neutral-primary)}.searchcraft-toggle-button-sub-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);margin:0;color:var(--sc-content-neutral-secondary)}.searchcraft-toggle-button-background{transition:background-color .2s;background:var(--sc-surface-disabled);border:none;border-radius:16px;cursor:pointer;height:26px;position:relative;width:44px;flex-shrink:0}.searchcraft-toggle-button-background.active{background:var(--sc-surface-brand-primary);box-shadow:0px 0px 0px 1px rgba(0,0,0,.05)}.searchcraft-toggle-button-handle{background:var(--sc-surface-neutral-light);border-radius:50%;height:18px;left:4px;position:absolute;top:calc(50% - 9px);transition:transform .3s ease;width:18px}.searchcraft-toggle-button-handle.active{transform:translateX(16px)}.searchcraft-pagination{display:inline-grid;gap:16px;grid-template-columns:repeat(3, auto);grid-template-rows:1fr}.searchcraft-pagination-list{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius);display:flex;list-style-type:none;margin:0;overflow:hidden;padding:0;width:auto}.searchcraft-pagination-list li{border-right:1px solid var(--sc-border-neutral);height:100%;min-height:44px;width:44px}.searchcraft-pagination-list li:last-child{border-right:none}.searchcraft-pagination-item{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);align-items:center;background-color:var(--sc-surface-neutral-primary);border:none;display:flex;height:100%;justify-content:center;width:100%}.searchcraft-pagination-item-active{background-color:var(--sc-surface-brand-secondary);font-weight:var(--sc-font-bold)}.searchcraft-pagination-control{border:1px solid var(--sc-border-neutral);border-radius:var(--sc-border-radius)}.searchcraft-pagination-range{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);align-items:center;display:flex}.searchcraft-select{display:flex;flex-direction:column;gap:4px}.searchcraft-select-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size);font-weight:var(--sc-font-bold)}.searchcraft-select-input-wrapper{position:relative}.searchcraft-select-input{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size);appearance:none;background-color:var(--sc-surface-neutral-secondary);border:2px solid rgba(0,0,0,0);border-radius:var(--sc-border-radius);cursor:pointer;height:44px;padding:0 44px 0 16px;width:100%}.searchcraft-select-input:hover{background-color:var(--sc-surface-neutral-secondary-hover)}.searchcraft-select-input:active{background-color:var(--sc-surface-neutral-secondary-active)}.searchcraft-select-input:focus{border-color:var(--sc-border-brand);outline:none}.searchcraft-select-input-icon{pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.searchcraft-select-caption{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-small-font-size)}.searchcraft-search-results-per-page{display:flex}.searchcraft-search-results-per-page-select{align-items:center;display:flex;gap:12px}.searchcraft-search-results-per-page-select-label{font-family:var(--sc-font-family);font-weight:var(--sc-font-normal);line-height:1.25;-webkit-font-smoothing:antialiased;font-size:var(--sc-body-font-size)}.searchcraft-search-results-per-page-select-input{min-width:120px}/*# sourceMappingURL=hologram.css.map */\n`;\n\nconst SearchcraftTheme$1 = /*@__PURE__*/ proxyCustomElement(class SearchcraftTheme extends H {\n constructor() {\n super();\n this.__registerHost();\n }\n /**\n * The name of the theme.\n */\n theme;\n /**\n * The custom theme configuration object.\n */\n customTheme;\n camelToKebab = (string) => {\n return string\n .replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`) // Convert uppercase letters to `-lowercase`\n .toLowerCase(); // Ensure the whole string is in lowercase\n };\n componentDidLoad() {\n // Inject style element\n const styleElement = document.querySelector('#searchcraft-theme') ||\n document.createElement('style');\n styleElement.innerHTML = styles;\n styleElement.id = 'searchcraft-theme';\n const head = document.head || document.getElementsByTagName('head')[0];\n if (!head.contains(styleElement)) {\n if (head.firstChild) {\n head.insertBefore(styleElement, head.firstChild);\n }\n else {\n head.appendChild(styleElement);\n }\n }\n // Add theme name to body\n document.body.dataset.theme = this.theme || 'light';\n // Add CSS variables from customTheme configuration to document\n Object.entries(JSON.parse(this.customTheme || '[]')).map(([key, value]) => {\n document.documentElement.style.setProperty(`--${this.camelToKebab(key)}`, `${value}`);\n });\n }\n render() {\n return;\n }\n}, [0, \"searchcraft-theme\", {\n \"theme\": [1],\n \"customTheme\": [1, \"custom-theme\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"searchcraft-theme\"];\n components.forEach(tagName => { switch (tagName) {\n case \"searchcraft-theme\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SearchcraftTheme$1);\n }\n break;\n } });\n}\n\nconst SearchcraftTheme = SearchcraftTheme$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftTheme, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-theme.js.map","import { S as SearchcraftToggleButton$1, d as defineCustomElement$1 } from './p-11b05b94.js';\n\nconst SearchcraftToggleButton = SearchcraftToggleButton$1;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { SearchcraftToggleButton, defineCustomElement };\n\n//# sourceMappingURL=searchcraft-toggle-button.js.map","import { defineCustomElement as define_searchcraft_ad } from './searchcraft-ad.js';\nimport { defineCustomElement as define_searchcraft_base_search_result } from './searchcraft-base-search-result.js';\nimport { defineCustomElement as define_searchcraft_base_search_results } from './searchcraft-base-search-results.js';\nimport { defineCustomElement as define_searchcraft_button } from './searchcraft-button.js';\nimport { defineCustomElement as define_searchcraft_error_message } from './searchcraft-error-message.js';\nimport { defineCustomElement as define_searchcraft_facet_list } from './searchcraft-facet-list.js';\nimport { defineCustomElement as define_searchcraft_filter_panel } from './searchcraft-filter-panel.js';\nimport { defineCustomElement as define_searchcraft_input_form } from './searchcraft-input-form.js';\nimport { defineCustomElement as define_searchcraft_input_label } from './searchcraft-input-label.js';\nimport { defineCustomElement as define_searchcraft_pagination } from './searchcraft-pagination.js';\nimport { defineCustomElement as define_searchcraft_popover_button } from './searchcraft-popover-button.js';\nimport { defineCustomElement as define_searchcraft_popover_form } from './searchcraft-popover-form.js';\nimport { defineCustomElement as define_searchcraft_popover_list_item } from './searchcraft-popover-list-item.js';\nimport { defineCustomElement as define_searchcraft_popover_list_view } from './searchcraft-popover-list-view.js';\nimport { defineCustomElement as define_searchcraft_results_info } from './searchcraft-results-info.js';\nimport { defineCustomElement as define_searchcraft_search_results_per_page } from './searchcraft-search-results-per-page.js';\nimport { defineCustomElement as define_searchcraft_select } from './searchcraft-select.js';\nimport { defineCustomElement as define_searchcraft_slider } from './searchcraft-slider.js';\nimport { defineCustomElement as define_searchcraft_theme } from './searchcraft-theme.js';\nimport { defineCustomElement as define_searchcraft_toggle_button } from './searchcraft-toggle-button.js';\n\nexport const defineCustomElements = () => {\n define_searchcraft_ad();\n define_searchcraft_base_search_result();\n define_searchcraft_base_search_results();\n define_searchcraft_button();\n define_searchcraft_error_message();\n define_searchcraft_facet_list();\n define_searchcraft_filter_panel();\n define_searchcraft_input_form();\n define_searchcraft_input_label();\n define_searchcraft_pagination();\n define_searchcraft_popover_button();\n define_searchcraft_popover_form();\n define_searchcraft_popover_list_item();\n define_searchcraft_popover_list_view();\n define_searchcraft_results_info();\n define_searchcraft_search_results_per_page();\n define_searchcraft_select();\n define_searchcraft_slider();\n define_searchcraft_theme();\n define_searchcraft_toggle_button();\n};\n\n// Call defineCustomElements as soon as it's available\ndefineCustomElements();","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=new Set([\"children\",\"localName\",\"ref\",\"style\",\"className\"]),n=new WeakMap,t=(e,t,o,l,a)=>{const s=a?.[t];void 0===s?(e[t]=o,null==o&&t in HTMLElement.prototype&&e.removeAttribute(t)):o!==l&&((e,t,o)=>{let l=n.get(e);void 0===l&&n.set(e,l=new Map);let a=l.get(t);void 0!==o?void 0===a?(l.set(t,a={handleEvent:o}),e.addEventListener(t,a)):a.handleEvent=o:void 0!==a&&(l.delete(t),e.removeEventListener(t,a))})(e,s,o)},o=({react:n,tagName:o,elementClass:l,events:a,displayName:s})=>{const c=new Set(Object.keys(a??{})),r=n.forwardRef(((s,r)=>{const i=n.useRef(new Map),d=n.useRef(null),f={},u={};for(const[n,t]of Object.entries(s))e.has(n)?f[\"className\"===n?\"class\":n]=t:c.has(n)||n in l.prototype?u[n]=t:f[n]=t;return n.useLayoutEffect((()=>{if(null===d.current)return;const e=new Map;for(const n in u)t(d.current,n,s[n],i.current.get(n),a),i.current.delete(n),e.set(n,s[n]);for(const[e,n]of i.current)t(d.current,e,void 0,n,a);i.current=e})),n.useLayoutEffect((()=>{d.current?.removeAttribute(\"defer-hydration\")}),[]),f.suppressHydrationWarning=!0,n.createElement(o,{...f,ref:n.useCallback((e=>{d.current=e,\"function\"==typeof r?r(e):null!==r&&(r.current=e)}),[r])})}));return r.displayName=s??l.name,r};export{o as createComponent};\n//# sourceMappingURL=create-component.js.map\n","import { createComponent as a } from \"@lit/react\";\nconst i = ({\n defineCustomElement: e,\n ...r\n}) => (typeof e < \"u\" && e(), a(r)), p = ({\n hydrateModule: e,\n properties: r,\n tagName: n\n}) => async (t) => {\n const { createComponentForServerSideRendering: o } = await import(\"./ssr.js\");\n return o({\n tagName: n,\n properties: r,\n renderToString: (await e).renderToString\n })(t);\n};\nexport {\n i as createComponent,\n p as createSSRComponent\n};\n","'use client';\n\n/**\n * This file was automatically generated by the Stencil React Output Target.\n * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\n/* eslint-disable */\n\nimport { SearchcraftAd as SearchcraftAdElement, defineCustomElement as defineSearchcraftAd } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-ad.js\";\nimport { SearchcraftBaseSearchResult as SearchcraftBaseSearchResultElement, defineCustomElement as defineSearchcraftBaseSearchResult } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-base-search-result.js\";\nimport { SearchcraftBaseSearchResults as SearchcraftBaseSearchResultsElement, defineCustomElement as defineSearchcraftBaseSearchResults } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-base-search-results.js\";\nimport { SearchcraftButton as SearchcraftButtonElement, defineCustomElement as defineSearchcraftButton } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-button.js\";\nimport { SearchcraftErrorMessage as SearchcraftErrorMessageElement, defineCustomElement as defineSearchcraftErrorMessage } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-error-message.js\";\nimport { SearchcraftFacetList as SearchcraftFacetListElement, defineCustomElement as defineSearchcraftFacetList } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-facet-list.js\";\nimport { SearchcraftFilterPanel as SearchcraftFilterPanelElement, defineCustomElement as defineSearchcraftFilterPanel } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-filter-panel.js\";\nimport { SearchcraftInputForm as SearchcraftInputFormElement, defineCustomElement as defineSearchcraftInputForm } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-input-form.js\";\nimport { SearchcraftInputLabel as SearchcraftInputLabelElement, defineCustomElement as defineSearchcraftInputLabel } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-input-label.js\";\nimport { SearchcraftPagination as SearchcraftPaginationElement, defineCustomElement as defineSearchcraftPagination } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-pagination.js\";\nimport { SearchcraftPopoverButton as SearchcraftPopoverButtonElement, defineCustomElement as defineSearchcraftPopoverButton } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-button.js\";\nimport { SearchcraftPopoverForm as SearchcraftPopoverFormElement, defineCustomElement as defineSearchcraftPopoverForm } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-form.js\";\nimport { SearchcraftPopoverListItem as SearchcraftPopoverListItemElement, defineCustomElement as defineSearchcraftPopoverListItem } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-list-item.js\";\nimport { SearchcraftPopoverListView as SearchcraftPopoverListViewElement, defineCustomElement as defineSearchcraftPopoverListView } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-popover-list-view.js\";\nimport { SearchcraftResultsInfo as SearchcraftResultsInfoElement, defineCustomElement as defineSearchcraftResultsInfo } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-results-info.js\";\nimport { SearchcraftSearchResultsPerPage as SearchcraftSearchResultsPerPageElement, defineCustomElement as defineSearchcraftSearchResultsPerPage } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-search-results-per-page.js\";\nimport { SearchcraftSelect as SearchcraftSelectElement, defineCustomElement as defineSearchcraftSelect } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-select.js\";\nimport { SearchcraftSlider as SearchcraftSliderElement, defineCustomElement as defineSearchcraftSlider } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-slider.js\";\nimport { SearchcraftTheme as SearchcraftThemeElement, defineCustomElement as defineSearchcraftTheme } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-theme.js\";\nimport { SearchcraftToggleButton as SearchcraftToggleButtonElement, defineCustomElement as defineSearchcraftToggleButton } from \"@searchcraft/javascript-sdk/dist/components/searchcraft-toggle-button.js\";\nimport type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime';\nimport { createComponent } from '@stencil/react-output-target/runtime';\nimport React from 'react';\n\ntype SearchcraftAdEvents = NonNullable<unknown>;\n\nexport const SearchcraftAd: StencilReactComponent<SearchcraftAdElement, SearchcraftAdEvents> = /*@__PURE__*/ createComponent<SearchcraftAdElement, SearchcraftAdEvents>({\n tagName: 'searchcraft-ad',\n elementClass: SearchcraftAdElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftAdEvents,\n defineCustomElement: defineSearchcraftAd\n});\n\ntype SearchcraftBaseSearchResultEvents = NonNullable<unknown>;\n\nexport const SearchcraftBaseSearchResult: StencilReactComponent<SearchcraftBaseSearchResultElement, SearchcraftBaseSearchResultEvents> = /*@__PURE__*/ createComponent<SearchcraftBaseSearchResultElement, SearchcraftBaseSearchResultEvents>({\n tagName: 'searchcraft-base-search-result',\n elementClass: SearchcraftBaseSearchResultElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftBaseSearchResultEvents,\n defineCustomElement: defineSearchcraftBaseSearchResult\n});\n\ntype SearchcraftBaseSearchResultsEvents = NonNullable<unknown>;\n\nexport const SearchcraftBaseSearchResults: StencilReactComponent<SearchcraftBaseSearchResultsElement, SearchcraftBaseSearchResultsEvents> = /*@__PURE__*/ createComponent<SearchcraftBaseSearchResultsElement, SearchcraftBaseSearchResultsEvents>({\n tagName: 'searchcraft-base-search-results',\n elementClass: SearchcraftBaseSearchResultsElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftBaseSearchResultsEvents,\n defineCustomElement: defineSearchcraftBaseSearchResults\n});\n\ntype SearchcraftButtonEvents = { onButtonClick: EventName<CustomEvent<void>> };\n\nexport const SearchcraftButton: StencilReactComponent<SearchcraftButtonElement, SearchcraftButtonEvents> = /*@__PURE__*/ createComponent<SearchcraftButtonElement, SearchcraftButtonEvents>({\n tagName: 'searchcraft-button',\n elementClass: SearchcraftButtonElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onButtonClick: 'buttonClick' } as SearchcraftButtonEvents,\n defineCustomElement: defineSearchcraftButton\n});\n\ntype SearchcraftErrorMessageEvents = NonNullable<unknown>;\n\nexport const SearchcraftErrorMessage: StencilReactComponent<SearchcraftErrorMessageElement, SearchcraftErrorMessageEvents> = /*@__PURE__*/ createComponent<SearchcraftErrorMessageElement, SearchcraftErrorMessageEvents>({\n tagName: 'searchcraft-error-message',\n elementClass: SearchcraftErrorMessageElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftErrorMessageEvents,\n defineCustomElement: defineSearchcraftErrorMessage\n});\n\ntype SearchcraftFacetListEvents = { onFacetSelectionUpdated: EventName<CustomEvent<{ paths: string[] }>> };\n\nexport const SearchcraftFacetList: StencilReactComponent<SearchcraftFacetListElement, SearchcraftFacetListEvents> = /*@__PURE__*/ createComponent<SearchcraftFacetListElement, SearchcraftFacetListEvents>({\n tagName: 'searchcraft-facet-list',\n elementClass: SearchcraftFacetListElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onFacetSelectionUpdated: 'facetSelectionUpdated' } as SearchcraftFacetListEvents,\n defineCustomElement: defineSearchcraftFacetList\n});\n\ntype SearchcraftFilterPanelEvents = NonNullable<unknown>;\n\nexport const SearchcraftFilterPanel: StencilReactComponent<SearchcraftFilterPanelElement, SearchcraftFilterPanelEvents> = /*@__PURE__*/ createComponent<SearchcraftFilterPanelElement, SearchcraftFilterPanelEvents>({\n tagName: 'searchcraft-filter-panel',\n elementClass: SearchcraftFilterPanelElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftFilterPanelEvents,\n defineCustomElement: defineSearchcraftFilterPanel\n});\n\ntype SearchcraftInputFormEvents = {\n onInputFocus: EventName<CustomEvent<void>>,\n onInputBlur: EventName<CustomEvent<void>>,\n onInputInit: EventName<CustomEvent<void>>\n};\n\nexport const SearchcraftInputForm: StencilReactComponent<SearchcraftInputFormElement, SearchcraftInputFormEvents> = /*@__PURE__*/ createComponent<SearchcraftInputFormElement, SearchcraftInputFormEvents>({\n tagName: 'searchcraft-input-form',\n elementClass: SearchcraftInputFormElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {\n onInputFocus: 'inputFocus',\n onInputBlur: 'inputBlur',\n onInputInit: 'inputInit'\n } as SearchcraftInputFormEvents,\n defineCustomElement: defineSearchcraftInputForm\n});\n\ntype SearchcraftInputLabelEvents = NonNullable<unknown>;\n\nexport const SearchcraftInputLabel: StencilReactComponent<SearchcraftInputLabelElement, SearchcraftInputLabelEvents> = /*@__PURE__*/ createComponent<SearchcraftInputLabelElement, SearchcraftInputLabelEvents>({\n tagName: 'searchcraft-input-label',\n elementClass: SearchcraftInputLabelElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftInputLabelEvents,\n defineCustomElement: defineSearchcraftInputLabel\n});\n\ntype SearchcraftPaginationEvents = NonNullable<unknown>;\n\nexport const SearchcraftPagination: StencilReactComponent<SearchcraftPaginationElement, SearchcraftPaginationEvents> = /*@__PURE__*/ createComponent<SearchcraftPaginationElement, SearchcraftPaginationEvents>({\n tagName: 'searchcraft-pagination',\n elementClass: SearchcraftPaginationElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPaginationEvents,\n defineCustomElement: defineSearchcraftPagination\n});\n\ntype SearchcraftPopoverButtonEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverButton: StencilReactComponent<SearchcraftPopoverButtonElement, SearchcraftPopoverButtonEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverButtonElement, SearchcraftPopoverButtonEvents>({\n tagName: 'searchcraft-popover-button',\n elementClass: SearchcraftPopoverButtonElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverButtonEvents,\n defineCustomElement: defineSearchcraftPopoverButton\n});\n\ntype SearchcraftPopoverFormEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverForm: StencilReactComponent<SearchcraftPopoverFormElement, SearchcraftPopoverFormEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverFormElement, SearchcraftPopoverFormEvents>({\n tagName: 'searchcraft-popover-form',\n elementClass: SearchcraftPopoverFormElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverFormEvents,\n defineCustomElement: defineSearchcraftPopoverForm\n});\n\ntype SearchcraftPopoverListItemEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverListItem: StencilReactComponent<SearchcraftPopoverListItemElement, SearchcraftPopoverListItemEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverListItemElement, SearchcraftPopoverListItemEvents>({\n tagName: 'searchcraft-popover-list-item',\n elementClass: SearchcraftPopoverListItemElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverListItemEvents,\n defineCustomElement: defineSearchcraftPopoverListItem\n});\n\ntype SearchcraftPopoverListViewEvents = NonNullable<unknown>;\n\nexport const SearchcraftPopoverListView: StencilReactComponent<SearchcraftPopoverListViewElement, SearchcraftPopoverListViewEvents> = /*@__PURE__*/ createComponent<SearchcraftPopoverListViewElement, SearchcraftPopoverListViewEvents>({\n tagName: 'searchcraft-popover-list-view',\n elementClass: SearchcraftPopoverListViewElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftPopoverListViewEvents,\n defineCustomElement: defineSearchcraftPopoverListView\n});\n\ntype SearchcraftResultsInfoEvents = NonNullable<unknown>;\n\nexport const SearchcraftResultsInfo: StencilReactComponent<SearchcraftResultsInfoElement, SearchcraftResultsInfoEvents> = /*@__PURE__*/ createComponent<SearchcraftResultsInfoElement, SearchcraftResultsInfoEvents>({\n tagName: 'searchcraft-results-info',\n elementClass: SearchcraftResultsInfoElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftResultsInfoEvents,\n defineCustomElement: defineSearchcraftResultsInfo\n});\n\ntype SearchcraftSearchResultsPerPageEvents = NonNullable<unknown>;\n\nexport const SearchcraftSearchResultsPerPage: StencilReactComponent<SearchcraftSearchResultsPerPageElement, SearchcraftSearchResultsPerPageEvents> = /*@__PURE__*/ createComponent<SearchcraftSearchResultsPerPageElement, SearchcraftSearchResultsPerPageEvents>({\n tagName: 'searchcraft-search-results-per-page',\n elementClass: SearchcraftSearchResultsPerPageElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftSearchResultsPerPageEvents,\n defineCustomElement: defineSearchcraftSearchResultsPerPage\n});\n\ntype SearchcraftSelectEvents = { onSelectChange: EventName<CustomEvent<string>> };\n\nexport const SearchcraftSelect: StencilReactComponent<SearchcraftSelectElement, SearchcraftSelectEvents> = /*@__PURE__*/ createComponent<SearchcraftSelectElement, SearchcraftSelectEvents>({\n tagName: 'searchcraft-select',\n elementClass: SearchcraftSelectElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onSelectChange: 'selectChange' } as SearchcraftSelectEvents,\n defineCustomElement: defineSearchcraftSelect\n});\n\ntype SearchcraftSliderEvents = { onRangeChanged: EventName<CustomEvent<any>> };\n\nexport const SearchcraftSlider: StencilReactComponent<SearchcraftSliderElement, SearchcraftSliderEvents> = /*@__PURE__*/ createComponent<SearchcraftSliderElement, SearchcraftSliderEvents>({\n tagName: 'searchcraft-slider',\n elementClass: SearchcraftSliderElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onRangeChanged: 'rangeChanged' } as SearchcraftSliderEvents,\n defineCustomElement: defineSearchcraftSlider\n});\n\ntype SearchcraftThemeEvents = NonNullable<unknown>;\n\nexport const SearchcraftTheme: StencilReactComponent<SearchcraftThemeElement, SearchcraftThemeEvents> = /*@__PURE__*/ createComponent<SearchcraftThemeElement, SearchcraftThemeEvents>({\n tagName: 'searchcraft-theme',\n elementClass: SearchcraftThemeElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: {} as SearchcraftThemeEvents,\n defineCustomElement: defineSearchcraftTheme\n});\n\ntype SearchcraftToggleButtonEvents = { onToggleUpdated: EventName<CustomEvent<boolean>> };\n\nexport const SearchcraftToggleButton: StencilReactComponent<SearchcraftToggleButtonElement, SearchcraftToggleButtonEvents> = /*@__PURE__*/ createComponent<SearchcraftToggleButtonElement, SearchcraftToggleButtonEvents>({\n tagName: 'searchcraft-toggle-button',\n elementClass: SearchcraftToggleButtonElement,\n // @ts-ignore - React type of Stencil Output Target may differ from the React version used in the Nuxt.js project, this can be ignored.\n react: React,\n events: { onToggleUpdated: 'toggleUpdated' } as SearchcraftToggleButtonEvents,\n defineCustomElement: defineSearchcraftToggleButton\n});\n","import type { FC } from 'react';\n\nimport { SearchcraftBaseSearchResults as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The props for the SearchcraftBaseSearchResults component.\n */\ninterface SearchcraftBaseSearchResultsProps\n extends Components.SearchcraftBaseSearchResults {}\n\n/**\n * A component that renders a list of search results with customizable styles, layout, and link behavior.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftBaseSearchResults } from '@searchcraft/react-sdk';\n * import searchResultMappings from './searchResultMappings';\n *\n * const MySearchComponent = () => {\n * return (\n * <SearchcraftBaseSearchResults\n * searchResultMappings={searchResultMappings}\n * resultImagePlacement=\"left\"\n * buttonLabel=\"View More\"\n * buttonTarget=\"_blank\"\n * buttonRel=\"noopener\"\n * containerTarget=\"_self\"\n * containerRel=\"nofollow\"\n * onNoResults={() => console.log(\"No search results found\")}\n * />\n * );\n * };\n *\n * export default MySearchComponent;\n * ```\n */\nconst SearchcraftBaseSearchResults: FC<SearchcraftBaseSearchResultsProps> = (\n props,\n) => <Component {...props} />;\n\nexport { SearchcraftBaseSearchResults };\nexport type { SearchcraftBaseSearchResultsProps };\n","import type { FC } from 'react';\n\nimport { SearchcraftFilterPanel as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The props for the SearchcraftFilterPanel.\n */\ninterface SearchcraftFilterPanelProps\n extends Components.SearchcraftFilterPanel {}\n\n/**\n * A component that represents a filter panel UI view, allowing users to refine and control their search queries by applying various filter criteria.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftFilterPanel } from '@searchcraft/react-sdk';\n * import filterItems from './filterItems';\n *\n * const MyFilterComponent = () => {\n * return (\n * <SearchcraftFilterPanel items={filterItems} />\n * );\n * };\n *\n * export default MyFilterComponent;\n * ```\n */\nconst SearchcraftFilterPanel: FC<SearchcraftFilterPanelProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftFilterPanel };\nexport type { SearchcraftFilterPanelProps };\n","import type { FC } from 'react';\n\nimport { SearchcraftInputForm as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The props for the SearchcraftInputForm.\n */\ninterface SearchcraftInputFormProps extends Components.SearchcraftInputForm {}\n\n/**\n * A component that provides a user-friendly interface for querying an indexed dataset,\n * enabling users to easily search large collections of data. It abstracts the complexities\n * of index-based searching, making it accessible to users of all technical levels.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftInputForm } from '@searchcraft/react-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n *\n * const MySearchComponent = () => {\n * const handleQuerySubmit = (event: CustomEvent<string>) => {\n * console.log(\"Query submitted\", event.detail);\n * };\n *\n * return (\n * <SearchcraftInputForm\n * config={searchcraftConfig}\n * autoSearch={true}\n * buttonPlacement=\"right\"\n * buttonLabel=\"Search\"\n * inputLabel=\"Search Database\"\n * customStyles={{ border: \"1px solid gray\", padding: \"5px\" }}\n * placeholderValue=\"Search here...\"\n * searchTerm=\"\"\n * onQuerySubmit={handleQuerySubmit}\n * onInputCleared={() => console.log(\"Input cleared\")}\n * onNoResultsReceived={() => console.log(\"No results found\")}\n * onInputFocus={() => console.log(\"Input focused\")}\n * onInputBlur={() => console.log(\"Input blurred\")}\n * onInputInit={() => console.log(\"Input initialized\")}\n * />\n * );\n * };\n *\n * export default MySearchComponent;\n * ```\n */\nconst SearchcraftInputForm: FC<SearchcraftInputFormProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftInputForm };\nexport type { SearchcraftInputFormProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverButton as Component } from '../stencil-web-components/components';\n\n/**\n * The props for the SearchcraftPopoverButton.\n */\ninterface SearchcraftPopoverButtonProps\n extends Components.SearchcraftPopoverButton {}\n\n/**\n * A button component that, when clicked, toggles the visibility of a popover.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftPopoverButton } from '@searchcraft/react-sdk';\n *\n * const MyPopoverTrigger = () => {\n * return (\n * <SearchcraftPopoverButton>\n * Open Popover\n * </SearchcraftPopoverButton>\n * );\n * };\n *\n * export default MyPopoverTrigger;\n * ```\n */\nconst SearchcraftPopoverButton: FC<SearchcraftPopoverButtonProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftPopoverButton };\nexport type { SearchcraftPopoverButtonProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\nimport { SearchcraftPopoverForm as Component } from '../stencil-web-components/components';\n\n/**\n * The props for the SearchcraftPopoverForm component.\n */\ninterface SearchcraftPopoverFormProps\n extends Components.SearchcraftPopoverForm {}\n\n/**\n * A component that displays search results in a popover container that dynamically appears\n * when the user interacts with a search input field, or when a popover button is clicked.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftPopoverForm } from '@searchcraft/react-sdk';\n * import searchcraftConfig from './searchcraftConfig';\n * import popoverResultMappings from './popoverResultMappings';\n *\n * const MyPopoverSearch = () => {\n * return (\n * <SearchcraftPopoverForm\n * config={searchcraftConfig}\n * type=\"fullscreen\"\n * popoverResultMappings={popoverResultMappings}\n * hotkey=\"k\"\n * hotkeyModifier=\"meta\"\n * />\n * );\n * };\n *\n * export default MyPopoverSearch;\n * ```\n */\nconst SearchcraftPopoverForm: FC<SearchcraftPopoverFormProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftPopoverForm };\nexport type { SearchcraftPopoverFormProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftResultsInfo as Component } from '../stencil-web-components/components';\n\n/**\n * The Props for the SearchcraftResultsInfo component.\n */\ninterface SearchcraftResultsInfoProps\n extends Components.SearchcraftResultsInfo {}\n\n/**\n * This React component is designed to display the number of results returned from a search query.\n *\n * @example\n * ```tsx\n * import React, { useEffect, useRef } from 'react';\n * import { SearchcraftResultsInfo } from '@searchcraft/react-sdk';\n *\n * const MyResultsInfo = () => {\n * const ref = useRef();\n *\n * useEffect(() => {\n * ref.current.customFormatter = (range, count, responseTime) =>\n * `${range[0]}-${range[1]} of ${count} results in ${responseTime}ms`;\n * });\n *\n * return <SearchcraftResultsInfo ref={ref} />;\n * };\n *\n * export default MyResultsInfo;\n * ```\n */\nconst SearchcraftResultsInfo: FC<SearchcraftResultsInfoProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftResultsInfo };\nexport type { SearchcraftResultsInfoProps };\n","import type { FC } from 'react';\n\nimport { SearchcraftTheme as Component } from '../stencil-web-components/components';\nimport type { Components } from '@searchcraft/javascript-sdk';\n\n/**\n * The Props for the SearchcraftTheme component.\n */\ninterface SearchcraftThemeProps extends Components.SearchcraftTheme {}\n\n/**\n * A component that applies Searchcraft's built-in CSS theme to your page.\n * It does not render anything visible—its only function is to manage the CSS styles on the page.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftTheme } from '@searchcraft/react-sdk';\n *\n * const MyThemeProvider = () => {\n * return <SearchcraftTheme theme=\"light\" customTheme={'[]'} />;\n * };\n *\n * export default MyThemeProvider;\n * ```\n */\nconst SearchcraftTheme: FC<SearchcraftThemeProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftTheme };\nexport type { SearchcraftThemeProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftPagination as Component } from '../stencil-web-components/components';\n\n/**\n * The props for the SearchcraftPagination component.\n */\ninterface SearchcraftPaginationProps extends Components.SearchcraftPagination {}\n\n/**\n * This React component is designed to facilitate pagination of search results.\n * Once a query is submitted, calculates the number for pages.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftPagination } from '@searchcraft/react-sdk';\n *\n * const MyPaginationComponent = () => {\n * return (\n * // other searchcraft components\n * <SearchcraftPagination />\n * );\n * };\n *\n * export default MyPaginationComponent;\n * ```\n */\nconst SearchcraftPagination: FC<SearchcraftPaginationProps> = (props) => (\n <Component {...props} />\n);\n\nexport { SearchcraftPagination };\nexport type { SearchcraftPaginationProps };\n","import type { FC } from 'react';\n\nimport type { Components } from '@searchcraft/javascript-sdk';\n\nimport { SearchcraftSearchResultsPerPage as Component } from '../stencil-web-components/components';\n\n/**\n * The Props for the SearchcraftSearchResultsPerPage component.\n */\ninterface SearchcraftSearchResultsPerPageProps\n extends Components.SearchcraftSearchResultsPerPage {}\n\n/**\n * This React component is designed to choose the number of search results displayed.\n *\n * @example\n * ```tsx\n * import React from 'react';\n * import { SearchcraftSearchResultsPerPage } from '@searchcraft/react-sdk';\n *\n * const MyResultsPerPage = () => {\n * return <SearchcraftSearchResultsPerPage increment={20} />;\n * };\n *\n * export default MyResultsPerPage;\n * ```\n */\nconst SearchcraftSearchResultsPerPage: FC<\n SearchcraftSearchResultsPerPageProps\n> = (props) => <Component {...props} />;\n\nexport { SearchcraftSearchResultsPerPage };\nexport type { SearchcraftSearchResultsPerPageProps };\n","import { type SearchcraftConfig, SearchcraftCore } from '@searchcraft/core';\nimport { defineCustomElements } from '@searchcraft/javascript-sdk';\n\nimport packageJson from '../package.json';\n\n/**\n * Entry file for @searchcraft/react-sdk\n */\nexport * from './components';\n\n/**\n * The consumer-facing Searchcraft class.\n */\nexport class Searchcraft extends SearchcraftCore {\n constructor(config: SearchcraftConfig) {\n super(config, {\n sdkName: packageJson.name,\n sdkVersion: packageJson.version,\n });\n }\n}\n\n/**\n * Exports the shared types that all SDKs need\n */\nexport type * from '@searchcraft/core/dist/types/sdk-types';\n\n/**\n * Call the javascript sdk's defineCustomElementsFunction\n */\ndefineCustomElements();\n"],"names":["L","q","n","h","w","o","a","i","e","u","l","s","g","y","b","O","N","v","j","M","f","p","I","G","W","V","U","$","H","D","z","E","K","k","_","C","Q","J","P","Y","X","Z","ee","te","m","ne","d","B","x","T","S","re","A","R","oe","c","ie","ae","se","ue","t","r","ce","de","le","he","ge","NAMESPACE","BUILD","__defProp","__export","target","all","name","SVG_NS","HTML_NS","reWireGetterSetter","instance","hostRef","_a","cmpMeta","memberName","memberFlags","ogValue","ogDescriptor","newValue","hostRefs","deleteHostRef","ref","getHostRef","registerHost","hostElement","isMemberInElement","elm","consoleError","el","win","doc","plt","h2","eventName","listener","opts","supportsShadow","promiseResolve","queuePending","queueDomReads","queueDomWrites","queueTask","queue","write","cb","nextTick","flush","consume","i2","writeTask","isComplexType","result_exports","err","map","ok","unwrap","unwrapErr","value","result","fn","val","newVal","updateFallbackSlotVisibility","childNodes","getHostSlotNodes","slotNode","getHostSlotChildNodes","childNode","hostName","slotName","slottedNodes","node","includeSlot","isNodeLocatedInSlot","nodeToRelocate","createTime","fnName","tagName","nodeName","vnodeData","children","child","key","simple","lastSimple","vNodeChildren","walk","newVNode","classData","vdomFnUtils","vnode","tag","text","Host","isHost","convertToPublic","convertToPrivate","parsePropertyValue","propValue","propType","getElement","createEvent","flags","detail","emitEvent","ev","rootAppliedStyles","setAccessor","oldValue","isSvg","isProp","ln","classList","oldClasses","parseClassList","newClasses","prop","capture","CAPTURE_EVENT_SUFFIX","CAPTURE_EVENT_REGEX","isComplex","parseClassListRegex","updateElement","oldVnode","newVnode","isSvgMode2","oldVnodeAttrs","newVnodeAttrs","sortedAttrNames","attrNames","attr","contentRef","hostTagName","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","createElm","oldParentVNode","newParentVNode","childIndex","newVNode2","oldVNode","putBackInOriginalLocation","parentElm","recursive","oldSlotChildNodes","insertBefore","referenceNode","addVnodes","before","parentVNode","vnodes","startIdx","endIdx","containerElm","removeVnodes","index","updateChildren","oldCh","newCh","isInitialRender","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","elmToMove","isSameVnode","patch","leftVNode","rightVNode","oldChildren","newChildren","defaultHolder","relocateNodes","markSlotContentForRelocation","hostContentNodes","relocateNodeData","relocateNode","parent","newNode","reference","renderVdom","renderFnResults","isInitialLoad","_b","_c","_d","hostElm","rootVnode","relocateData","orgLocationNode","slotRefNode","parentNodeRef","insertBeforeNode","refNode","nextSibling","attachToAncestor","ancestorComponent","scheduleUpdate","dispatchHooks","endSchedule","maybePromise","enqueue","updateComponent","isPromisey","err2","endUpdate","rc","endRender","callRender","childrenPromises","postUpdate","postUpdateComponent","endPostUpdate","addHydratedFlag","safeCall","appDidLoad","who","method","arg","getValue","propName","setValue","oldVal","areBothNaN","watchMethods","watchMethodName","proxyComponent","Cstr","prototype","members","origGetter","origSetter","currentValue","attrNameToPropName","attrName","_a2","flags2","entry","callbackName","propDesc","initializeComponent","hmrVersionId","cmpTag","schedule","fireConnectedCallback","connectedCallback","endConnected","setContentReference","contentRefElm","disconnectedCallback","proxyCustomElement","compactMeta","originalConnectedCallback","originalDisconnectedCallback","Fragment","F","pe","zustand","vanilla$1","createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","getState","api","initialState","createStore","react$1","react","react_production","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","ReactSharedInternals","hasOwnProperty","ReactElement","type","self","source","owner","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","noop$1","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","array","escapedPrefix","nameSoFar","invokeCallback","nextNamePrefix","mapChildren","func","count","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","noop","forEachFunc","forEachContext","config","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","permalink","deps","Context","initialValue","create","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","React","vanilla","identity","useStore","selector","slice","createImpl","useBoundStore","exports","initialSearchcraftStateValues","searchcraftStore","set","get","functions","data","core","searchcraftInstance","debug","logger","fieldName","currentPaths","currentValues","handleSearchcraftResponse","response","items","facetsFromResponse","handleAdResponse","adClientResponseItems","isVisible","mode","searchTerm","page","perPage","commonjsGlobal","purify","module","global","factory","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","apply","construct","fun","thisValue","args","Func","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","thisArg","_len","_key","_len2","_key2","addToSet","transformCaseFunc","lcElement","cleanArray","clone","newObject","property","lookupGetter","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","content","_isBasicCustomElement","parentNode","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","namespaceURI","attrValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","entryPoint","hookFunction","urlAlphabet","nanoid","size","id","bytes","SearchcraftPopoverListItemAd","__publicField","currentState","item","templateRenderFunction","containerId","containerInnerHTML","defineCustomElement","defineCustomElement$1","getDocumentValueFromSearchResultMapping","mapping","fieldNameDetails","valueFound","getFormattedTimeFromNow","getMillis","unit","formatNumberWithCommas","number","timestamp","now","inputTime","diffInSeconds","minutes","hours","days","years","SearchcraftBaseSearchResult","searchcraft","document_position","search_term","number_of_documents","_e","_f","_g","styles","imageContainer","contentContainer","parseCustomStyles","serializeStyles","SearchcraftErrorMessage","SearchcraftBaseSearchResults$1","serializedStyles","itemsToRender","interstitialInterval","interstitialQuantity","adStartQuantity","adEndQuantity","searchItems","defineCustomElement$4","defineCustomElement$3","defineCustomElement$2","SearchcraftBaseSearchResults","classnames","hasOwn","classNames","classes","appendClass","parseValue","newClass","SearchcraftButton","deepMergeWithSpread","obj1","obj2","removeSubstringMatches","arr","otherEntry","otherIndex","facetToRecord","facet","records","traverseAndAddToFragments","facetChild","recordToObject","record","pathParts","currentRoot","currentPath","part","nextPath","objectToFacet","childObject","transformed","subChildObject","filterRecordByParentPaths","record1","record2","paths1","paths2","parentPaths","path","mergeFacetRoots","incomingRoot","currentArray","incomingArray","currentRootFacetChild","incomingRootFacetChild","currentRecord","incomingRecord","filteredCurrentRecord","mergedRecord","mergedObject","mergedFacetChild","SearchcraftFacetList","label","char","facetChildAncestor","facetPrime","timeTaken","incomingFacetRoot","updatedPaths","testPath","acc","str","paths","pathsWithParentPathsRemoved","firstFacet","isChildSelected","_event","grandchild","SearchcraftSlider","inputElement","rangeMin","rangeMax","startPercent","endPercent","startLabel","endLabel","SearchcraftToggleButton","SearchcraftFilterPanel$1","min","max","start","end","isActive","filterItem","granularityValue","SearchcraftFilterPanel","SearchcraftInputLabel","SearchcraftInput","input","validatedCustomStyles","isShowingClearButton","inputGridClassNames","inputGridStyles","SearchcraftInputForm","SearchcraftPagination$1","SearchcraftPagination","SearchcraftPopoverButton$1","SearchcraftPopoverButton","SearchcraftPopoverListItem","SearchcraftPopoverListView","SearchcraftPopoverForm$1","computedStyle","hostElementInput","direction","listItems","currentIndex","isListViewVisible","popoverFormClassNames","defineCustomElement$8","defineCustomElement$7","defineCustomElement$6","defineCustomElement$5","SearchcraftPopoverForm","SearchcraftResultsInfo$1","SearchcraftResultsInfo","SearchcraftSelect","selected","SearchcraftSearchResultsPerPage$1","SearchcraftSearchResultsPerPage","SearchcraftTheme$1","string","styleElement","head","SearchcraftTheme","defineCustomElements","define_searchcraft_ad","define_searchcraft_base_search_result","define_searchcraft_base_search_results","define_searchcraft_button","define_searchcraft_error_message","define_searchcraft_facet_list","define_searchcraft_filter_panel","define_searchcraft_input_form","define_searchcraft_input_label","define_searchcraft_pagination","define_searchcraft_popover_button","define_searchcraft_popover_form","define_searchcraft_popover_list_item","define_searchcraft_popover_list_view","define_searchcraft_results_info","define_searchcraft_search_results_per_page","define_searchcraft_select","define_searchcraft_slider","define_searchcraft_theme","define_searchcraft_toggle_button","createComponent","SearchcraftBaseSearchResultsElement","defineSearchcraftBaseSearchResults","SearchcraftFilterPanelElement","defineSearchcraftFilterPanel","SearchcraftInputFormElement","defineSearchcraftInputForm","SearchcraftPaginationElement","defineSearchcraftPagination","SearchcraftPopoverButtonElement","defineSearchcraftPopoverButton","SearchcraftPopoverFormElement","defineSearchcraftPopoverForm","SearchcraftResultsInfoElement","defineSearchcraftResultsInfo","SearchcraftSearchResultsPerPageElement","defineSearchcraftSearchResultsPerPage","SearchcraftThemeElement","defineSearchcraftTheme","jsx","Searchcraft","SearchcraftCore","packageJson"],"mappings":"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","x_google_ignoreList":[39,40]}
|