@telia-ace/widget-runtime-flamingo 1.0.14 → 1.0.16

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.
Files changed (33) hide show
  1. package/dist/component-platform-factory.d.ts +1 -1
  2. package/dist/component-platform-factory.d.ts.map +1 -1
  3. package/dist/context/children.context.d.ts +1 -1
  4. package/dist/context/children.context.d.ts.map +1 -1
  5. package/dist/context/component-node.context.d.ts +1 -1
  6. package/dist/context/component-node.context.d.ts.map +1 -1
  7. package/dist/controllers/actions-controller.d.ts +1 -1
  8. package/dist/controllers/actions-controller.d.ts.map +1 -1
  9. package/dist/core/create-lit-component.d.ts +1 -1
  10. package/dist/core/create-lit-component.d.ts.map +1 -1
  11. package/dist/core/get-render-state.d.ts +1 -1
  12. package/dist/core/get-render-state.d.ts.map +1 -1
  13. package/dist/data-provider/data-provider.d.ts +1 -1
  14. package/dist/data-provider/data-provider.d.ts.map +1 -1
  15. package/dist/index-bd7f8b31.js +3837 -0
  16. package/dist/index-bd7f8b31.js.map +1 -0
  17. package/dist/index.js +3 -3
  18. package/dist/mixins/widget-component.mixin.d.ts +1 -1
  19. package/dist/mixins/widget-component.mixin.d.ts.map +1 -1
  20. package/dist/{render-f341736f.js → render-369a79dd.js} +119 -100
  21. package/dist/render-369a79dd.js.map +1 -0
  22. package/dist/services.d.ts +3 -4
  23. package/dist/services.d.ts.map +1 -1
  24. package/dist/ui/view-outlet.d.ts +5 -1
  25. package/dist/ui/view-outlet.d.ts.map +1 -1
  26. package/dist/ui/wrapper.d.ts +1 -1
  27. package/dist/ui/wrapper.d.ts.map +1 -1
  28. package/dist/widget.d.ts +1 -1
  29. package/dist/widget.d.ts.map +1 -1
  30. package/package.json +3 -7
  31. package/dist/index-a6e9b2dc.js +0 -4870
  32. package/dist/index-a6e9b2dc.js.map +0 -1
  33. package/dist/render-f341736f.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-bd7f8b31.js","sources":["../../core/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-utilities@1.0.16/node_modules/@telia-ace/widget-utilities/dist/index.js","../../../node_modules/.pnpm/@telia-ace+widget-services@1.0.27/node_modules/@telia-ace/widget-services/dist/index.js","../../../node_modules/.pnpm/@webprovisions+bootstrapping@1.0.14/node_modules/@webprovisions/bootstrapping/dist/index.js","../../../node_modules/.pnpm/@webprovisions+platform@1.1.4/node_modules/@webprovisions/platform/dist/index.js","../src/ui/html-element-handlers.ts","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-element@3.3.3/node_modules/lit-element/lit-element.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directive.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directives/class-map.js","../src/ui/trigger-component.ts","../src/ui/prepare-dom.ts","../src/ui/view-outlet.ts","../src/component-platform-factory.ts","../src/services.ts","../src/widget.ts","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/context-request-event.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/create-context.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/controllers/context-consumer.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/value-notifier.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/controllers/context-provider.js","../../../node_modules/.pnpm/@lit-labs+context@0.4.0/node_modules/@lit-labs/context/lib/decorators/consume.js","../src/context/children.context.ts","../src/context/component-node.context.ts","../src/context/container.context.ts","../src/context/context.context.ts","../src/context/layout.context.ts","../src/context/properties.context.ts","../src/controllers/actions-controller.ts","../src/data-provider/data-provider.ts","../src/data-provider/providers/guide-provider.plugin.ts","../src/core/create-lit-component.ts","../src/ui/branding.ts","../src/ui/get-css-props.ts","../src/mixins/widget-component.mixin.ts"],"sourcesContent":["var Vt = Object.defineProperty, jt = Object.defineProperties;\nvar qt = Object.getOwnPropertyDescriptors;\nvar ct = Object.getOwnPropertySymbols;\nvar Ft = Object.prototype.hasOwnProperty, Ht = Object.prototype.propertyIsEnumerable;\nvar at = (n, t, e) => t in n ? Vt(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, I = (n, t) => {\n for (var e in t || (t = {}))\n Ft.call(t, e) && at(n, e, t[e]);\n if (ct)\n for (var e of ct(t))\n Ht.call(t, e) && at(n, e, t[e]);\n return n;\n}, ht = (n, t) => jt(n, qt(t));\nclass He {\n constructor(t) {\n const { events: e } = t.get(\"$widget\");\n this.events = e.createChild(this);\n }\n action(t, e, s) {\n this.events.dispatch(\n \"data:action\",\n { action: e, value: s, target: t },\n { bubbles: !0 }\n );\n }\n subscribe(t, e) {\n return this.events.subscribe(\n \"data:action\",\n (s, { action: i, value: r, target: o }) => t === o && e(t, i, r)\n );\n }\n}\nconst j = (n, t, e, ...s) => {\n const i = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(i, ...s);\n break;\n case \"warning\":\n console.warn(i, ...s);\n break;\n case \"error\":\n console.error(i, ...s);\n break;\n }\n}, $t = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...s) => j(t, \"info\", e, ...s),\n warn: (e, ...s) => j(t, \"warning\", e, ...s),\n error: (e, ...s) => j(t, \"error\", e, ...s)\n };\n}, lt = (n, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let s = 0, i = e.length; s < i; s++) {\n const r = e[s].trim();\n if (r === n || r === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(n) > -1 : !1;\n}, Wt = (n, t) => {\n if (typeof t == \"function\")\n return t(n);\n const e = typeof t == \"string\" ? Qt(t) : t;\n return !(!lt(n.tenant || \"\", e.tenant || \"\") || !lt(n.name, e.implementation || \"\"));\n}, Bt = (n) => (t) => Wt(t, n), q = (n) => n instanceof Array && n.length === 1 ? n[0] : n, Qt = (n) => {\n const t = {}, e = n.split(\":\");\n return e.length === 1 ? t.implementation = q(e[0].split(\",\")) : (t.tenant = q(e[0].split(\",\")), t.implementation = q(e[1].split(\",\"))), t;\n};\nvar D = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(D || {}), E = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(E || {});\nconst Yt = (n, t, e, s) => {\n try {\n const i = new t(e, s);\n return {\n name: n,\n invoke: (r, o) => {\n let c;\n return i[r] && (c = i[r].call(i, o)), Promise.resolve(c);\n },\n getInstance: () => i\n };\n } catch (i) {\n if (i.message && i.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (r) => {\n let o;\n return r === \"initialize\" && (o = t(e, s)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw i;\n }\n};\nfunction ut(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nlet Ut = class {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, s) {\n let i;\n typeof e == \"function\" ? i = {\n scope: D.Widget,\n stage: E.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : i = {\n scope: ut(e.scope, D.Widget),\n stage: ut(e.stage, E.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: s\n };\n let r = this.part;\n const o = t.split(\".\");\n return o.forEach((c, u) => {\n u === o.length - 1 ? r[c] || (r[c] = () => i) : r = this.part[c] = this.part[c] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n};\nconst Ct = (n) => {\n const t = new Ut({});\n return n(t), t.get();\n};\nCt((n) => {\n n.createCommand(\n \"types.register\",\n { scope: D.Implementation, stage: E.Pre },\n (t) => (e, s) => {\n t.container.get(\"$types\")[e] = s;\n }\n ).createCommand(\n \"type\",\n { stage: E.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: E.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: E.Pre },\n (t) => (e, s, i) => {\n const { container: r } = t;\n let o = null, c = e, u = s;\n typeof e == \"string\" && (o = e, c = s, u = i);\n const h = (a) => {\n const { transformPluginSettings: l } = t.container.get(\"$environmentOptions\"), p = l ? l(\n u || {},\n o,\n t.container,\n c\n ) : s;\n try {\n const d = Yt(\n o,\n c,\n r,\n p\n );\n r.get(\"$plugins\").push(d), a && d.invoke(\"initialize\", null);\n } catch (d) {\n $t(t).warn(\"Error when initializing plugin\", d);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, s) => {\n t.container.register(e, s);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, s) => {\n t.container.registerAsync(e, s);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, s) => {\n t.container.registerFactory(e, s);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, s) => {\n t.container.touch(e, s);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nfunction Gt(n, t, e) {\n return Array.from(n.querySelectorAll(\n `div[id^=\"${t}_\"], div[id^=\"${t}:\"]`\n )).map((s) => {\n if (s.id.substr(0, 7) === `${t}_`)\n return { widgetName: s.id.substr(7), element: s };\n const { 3: i } = s.id.split(\":\");\n return { widgetName: i, element: s };\n });\n}\nconst Kt = (n) => {\n const t = n.map((e) => e.replace(/\\./g, \"\\\\.\")).join(\"|\");\n return new RegExp(\"^((http[s]?:)?//)?(\" + t + \")/([^\\\\s]+)\");\n}, Jt = (n) => n.href;\nfunction Xt(n, t) {\n const e = Kt(t), s = (i) => {\n const r = e.exec(Jt(i));\n return r ? {\n element: i,\n widget: r[4]\n } : null;\n };\n return Array.from(n.querySelectorAll(\"a\")).map((i) => s(i)).filter((i) => !!i).map((i) => ({\n element: i.element,\n widgetName: i.widget\n }));\n}\nfunction kt(n) {\n return n.filter((t, e, s) => s.indexOf(t) === e);\n}\nlet Zt = class {\n constructor(t) {\n this.container = t.container, this.events = t.events;\n }\n watch(t) {\n const e = this.container.get(\"triggerElements\") || [], s = kt(e.concat(t));\n this.container.register(\"triggerElements\", s), this.events.dispatch(\n \"bootstrap:trigger-elements-updated\",\n { triggerElements: s },\n { bubbles: !0 }\n );\n }\n};\nfunction Et(n, ...t) {\n return n.implementation.events.subscribe(\"widget:create-instance\", (e, s) => {\n if (e.target === n) {\n let i = n.container.get(\"bootstrapping.monitor\");\n i || (i = new Zt(n), n.container.register(\"bootstrapping.monitor\", i)), i.watch(t);\n }\n }), n.load();\n}\nfunction Pt(n, t = document) {\n var e;\n const s = n.bindings, i = [].concat(\n Xt(t, s),\n Gt(t, ((e = n.environment) == null ? void 0 : e.name) || \"\")\n ), r = kt(i.map(({ widgetName: o }) => o)).reduce((o, c) => {\n const u = n.widgets.get(c);\n if (!u)\n return process.env.NODE_ENV !== \"production\" && $t(n).warn(`A trigger element for \"${c}\" was found but no widget with that name is available on the implementation (\"${n.name}\"). Make sure this is not a mistake.`), o;\n const h = i.filter((a) => a.widgetName === c).map((a) => a.element);\n return o.push(Et(u, ...h)), o;\n }, []);\n return Promise.all(r);\n}\nfunction te() {\n return new Promise((n) => {\n document.readyState === \"loading\" ? document.addEventListener(\"DOMContentLoaded\", () => n()) : n();\n });\n}\nconst ee = (n, t) => {\n const e = n;\n e.scan = (i) => Pt(e, i), e.bindings = t, e.attach = (i, ...r) => Et(i, ...r);\n const { environment: s } = e;\n return typeof s.configure == \"undefined\" && (s.configure = (i, r) => {\n let o, c;\n r ? (o = i, c = r) : (o = \"*\", c = i), s.implementations.query(o).forEach((u) => u.configure(c)), s.events.subscribe(\"implementation:created\", (u, h) => {\n const { implementation: a } = h;\n Bt(o)(a) && a.configure(c);\n });\n }), e;\n};\nfunction se(n, t, e = () => [], s) {\n const i = { ready: !1 };\n n.container.register(\"bootstrapping\", i);\n const r = ee(n, t);\n return te().then(() => {\n n.configure((...o) => {\n e().forEach((c) => c(...o));\n });\n }).then(() => Pt(r, s())).then(() => (i.ready = !0, n.events.dispatch(\"bootstrap:ready\", {}), r));\n}\nconst ne = Ct((n) => {\n n.createCommand(\n \"ready\",\n { scope: D.Implementation, stage: E.Pre },\n (t) => (e) => {\n const { container: s } = t, i = s.owner;\n s.get(\"bootstrapping\").ready ? e(i) : i.events.subscribeOnce(\"bootstrap:ready\", () => {\n e(i);\n });\n }\n );\n}), F = /* @__PURE__ */ new WeakMap();\nfunction A() {\n return (n) => (F.has(n) || F.set(n, {}), F.get(n));\n}\nconst H = (n, t, e, ...s) => {\n const i = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(i, ...s);\n break;\n case \"warning\":\n console.warn(i, ...s);\n break;\n case \"error\":\n console.error(i, ...s);\n break;\n }\n}, g = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...s) => H(t, \"info\", e, ...s),\n warn: (e, ...s) => H(t, \"warning\", e, ...s),\n error: (e, ...s) => H(t, \"error\", e, ...s)\n };\n}, m = A(), U = (() => {\n let n = 0;\n return () => ++n;\n})(), G = (n, t, e) => {\n const s = m(n).touchQueue.get(t);\n s && s.forEach((i) => {\n i(e, n);\n });\n};\nclass ie {\n constructor(t, e, s, i) {\n this.key = t, this.factory = e, this.parent = s, this.container = i, this.id = U(), this.resolved = !1, this.constructed = !1, this.async = !0;\n }\n resolve() {\n if (!this.constructed) {\n const t = this.factory(this.parent, this.container);\n return this.constructed = !0, this.value = Promise.resolve(t).then((e) => (this.resolved = !0, G(this.container, this.key, e), e));\n }\n return this.value;\n }\n}\nclass re {\n constructor(t, e, s, i) {\n this.key = t, this.value = e, this.parent = s, this.container = i, this.id = U(), this.async = !1, this.resolved = !1, this.constructed = !0, this.resolve = () => (this.resolved = !0, G(this.container, this.key, this.value), this.value);\n }\n}\nclass oe {\n constructor(t, e, s, i) {\n this.key = t, this.value = e, this.parent = s, this.container = i, this.id = U(), this.async = !1, this.resolved = !1, this.constructed = !1, this.resolve = () => {\n this.resolved = !0, this.constructed = !0;\n const r = this.value(this.parent, this.container);\n return G(this.container, this.key, this.value), r;\n };\n }\n}\nclass K {\n /**\n * Creates a new instance of `Container`.\n * @param owner The object owning this inctance.\n * @param name Optional name for the container.\n * @param parent Parent container this should be a child of.\n */\n constructor(t, e, s) {\n this.owner = t, this.name = e, this.parent = s, m(this).resolvers = /* @__PURE__ */ new Map(), m(this).touchQueue = /* @__PURE__ */ new Map(), m(this).children = [];\n }\n /**\n * Deletes an existing resolver by its unique id.\n * @param id Resolver id.\n */\n delete(t) {\n const e = m(this).resolvers, s = Array.from(e.values()).find((i) => i.id === t);\n return s ? (m(this).touchQueue.delete(s.key), Promise.resolve(e.delete(s.key))) : this.parent ? this.parent.delete(t) : Promise.resolve(!1);\n }\n /**\n * Clears the `Container` and any child containers by deleteing all registered resolvers.\n */\n clear() {\n const t = m(this).resolvers, e = Array.from(t.values());\n return Promise.all(e.map((s) => {\n if (s.constructed)\n return Promise.resolve(s.resolve()).then((i) => {\n if (i !== null && typeof i == \"object\" && typeof i.dispose == \"function\")\n return i.dispose.call(i, this, s);\n });\n })).then(() => {\n e.forEach((s) => this.delete(s.id)), m(this).children.forEach((s) => s.clear());\n });\n }\n /**\n * Detaches this `Container` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = m(this.parent).children, e = t.indexOf(this);\n e > -1 && (t.splice(e, 1), delete this.parent);\n }\n }\n /**\n * Provides a way of touching a value in the `Container` without forcing it to be resolved.\n * @param key Key of the resolved value to touch.\n * @param handler Handler function for touching the resolved value.\n */\n touch(t, e) {\n const s = m(this).resolvers.get(t);\n if (s && s.constructed)\n Promise.resolve(s.resolve()).then((i) => {\n e(i, this);\n });\n else {\n const i = m(this).touchQueue;\n let r = i.get(t);\n r || (r = [], i.set(t, r)), r.push(e);\n }\n return this.parent && !s ? this.parent.touch(t, e) : Promise.resolve();\n }\n /**\n * Registers an asynchronous resolver.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerAsync(t, e) {\n const s = m(this).resolvers.get(t);\n s && !s.async && process.env.NODE_ENV !== \"production\" && g(this).warn(`Mismatching resolver type. You are registering an async resolver with a key ('${t}') previously used by a non-async resolver.`);\n const i = new ie(t, e, s, this);\n return m(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers a factory resolver for constructing the value to be resolved.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerFactory(t, e) {\n const s = m(this).resolvers.get(t);\n s && s.async && process.env.NODE_ENV !== \"production\" && g(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new oe(t, e, s, this);\n return m(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers an synchronous resolver.\n * @param key Key of the resolver.\n * @param value Value.\n */\n register(t, e) {\n const s = m(this).resolvers.get(t);\n s && s.async && process.env.NODE_ENV !== \"production\" && g(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new re(t, e, s, this);\n return m(this).resolvers.set(t, i), i.id;\n }\n /**\n * Gets the value for a synchronous resolver.\n * @param key Key of resolver to get.\n */\n get(t) {\n const e = m(this).resolvers.get(t);\n if (e)\n return e.async && process.env.NODE_ENV !== \"production\" && g(this).warn(`You are retrieving an async value (with key '${t}') by the non-async function 'container.get(key)'. This will not be supported in future versions. Use 'container.getAsync(key) instead.'`), e.resolve();\n if (this.parent)\n return this.parent.get(t);\n }\n /**\n * Gets the value for a asynchronous resolver.\n * @param key Key of resolver to get.\n */\n getAsync(t) {\n const e = m(this).resolvers.get(t);\n if (e) {\n if (!e.async)\n throw process.env.NODE_ENV !== \"production\" && g(this).warn(`You are retrieving a non-async value (with key '${t}') by the async function 'container.getAsync(key)'.Use 'container.get(key) instead.'`), \"Mismatching resolver type\";\n return e.resolve();\n }\n return this.parent ? this.parent.getAsync(t) : Promise.resolve(void 0);\n }\n getMany(...t) {\n const e = {};\n return t.forEach((s) => e[s] = this.get(s)), e;\n }\n getManyAsync(...t) {\n const e = {};\n return Promise.all(t.map((s) => this.getAsync(s).then((i) => e[s] = i))).then(() => e);\n }\n createChild(t, e) {\n const s = new K(t, e, this);\n return m(this).children.push(s), s;\n }\n}\nclass pt {\n /**\n * \n * @param type Type of event.\n * @param target The target of the event, which will handle the default behavour.\n * @param cancelable Whether the event is cancelable by calling preventDefault().\n * @param bubbles Whether the event will bubble up the parent hierarchy.\n */\n constructor(t, e, s = !1, i = !1) {\n this.type = t, this.target = e, this.cancelable = !!s, this.bubbles = !!i, this.defaultPrevented = !1;\n }\n /**\n * Cancels the default behaviour (if the event is cancelable).\n */\n preventDefault() {\n this.cancelable && (this.defaultPrevented = !0);\n }\n}\nconst b = A(), dt = (n, t) => [].concat(\n b(n).listenerLookup.get(t.toLowerCase()) || [],\n b(n).listenerLookup.get(\"*\") || []\n), mt = (n, t, e, s) => {\n let i, r;\n return t instanceof pt ? (i = t, r = t.type) : (i = new pt(t, n.target, !!e.cancelable, !!e.bubbles), r = t), { event: i, type: r, async: s };\n};\nclass J {\n /**\n * Creates a new Event Manager instance.\n * @param target The target of events dispatched from this Event Manager instance.\n * @param parent Parent Event Manager instance.\n */\n constructor(t, e) {\n this.target = t, this.parent = e, b(this).listenerLookup = /* @__PURE__ */ new Map(), b(this).children = [];\n }\n /**\n * Clears registered event listeners in this `EventManager` as well as in any children.\n */\n clear() {\n b(this).listenerLookup.clear(), b(this).children.forEach((t) => t.clear());\n }\n /**\n * Detaches this `EventManager` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = b(this.parent).children, e = t.indexOf(this);\n e > -1 && t.splice(e, 1);\n }\n }\n /**\n * Creates an event subscription by registering an listener for an event type.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribe(t, e, s) {\n const i = b(this).listenerLookup, r = t.toLowerCase();\n return i.has(r) || i.set(r, []), i.get(r).push(e), () => this.unsubscribe(t, e);\n }\n /**\n * Similar to `subscribe()` but immediately removes the subscription after the first call.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribeOnce(t, e) {\n const s = this.subscribe(t, (i, r) => (s(), e(i, r)));\n }\n /**\n * Removes a listener for the specified event type.\n * @param type Event type to remove subscription for.\n * @param listener Event listener to remove.\n */\n unsubscribe(t, e) {\n const s = b(this).listenerLookup.get(t.toLowerCase());\n if (s) {\n const i = s.indexOf(e);\n i > -1 && s.splice(i, 1);\n }\n }\n /**\n * Dispatches an asynchonous event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatchAsync(t, e, s = {}) {\n const { event: i, type: r } = mt(this, t, s, !0), o = dt(this, r);\n let c = 0;\n const u = o.length;\n let h = Promise.resolve();\n for (c = 0; c < u; c++)\n ((a) => {\n h = h.then((l) => l ? Promise.resolve(!0) : Promise.resolve(a(i, e)).then(() => i.defaultPrevented));\n })(o[c]);\n return h.then((a) => !a && i.bubbles && this.parent ? this.parent.dispatchAsync(i, e) : a);\n }\n /**\n * Dispatches an event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatch(t, e, s = {}) {\n const { event: i, type: r } = mt(this, t, s, !1), o = dt(this, r);\n let c = 0;\n const u = o.length;\n let h = !1;\n for (c = 0; c < u; c++)\n if (o[c](i, e), i.defaultPrevented) {\n h = !0;\n break;\n }\n return !h && i.bubbles && this.parent && (h = this.parent.dispatch(i, e)), h;\n }\n /**\n * Creates a child instance to the current Event manager.\n */\n createChild(t) {\n const e = new J(t, this);\n return b(this).children.push(e), e;\n }\n}\nconst L = (n, t, e) => {\n const s = n.get(\"$plugins\").map((i) => {\n try {\n return i.invoke(t, e);\n } catch (r) {\n g(n).error(\"An error occured when invoking a plugin.\", i, r);\n }\n });\n return Promise.all(s);\n};\nclass ce {\n constructor(t) {\n this.widget = t.get(\"$widget\"), this.events = this.widget.events, this.container = this.widget.container, this.initialized = null, this.activated = null, this.initialize = this.initialize.bind(this), this.activate = this.activate.bind(this), this.deactivate = this.deactivate.bind(this), this.invoke = this.invoke.bind(this), this.createInstance();\n }\n createInstance() {\n if (!this.widget.container.get(\"$instance\")) {\n const t = this.widget.container.get(\"$types\"), e = this.widget.container.get(\"$type\");\n !e && g(this).error(\"Unable to create widget. No type is specified.\");\n const s = t[e];\n !s && g(this).error(`Unable to create widget. Type '${e}' is not registered.`), this.widget.events.dispatch(\"widget:create-instance\", {}, { bubbles: !0 });\n try {\n this.widget.container.register(\n \"$instance\",\n new s(this.container)\n );\n } catch (i) {\n g(this).error(\"Unable to create widget type.\", i);\n }\n this.widget.events.dispatch(\"widget:instance-created\", {}, { bubbles: !0 });\n }\n }\n /**\n * The initialization is performed before the widget is activated but after it's configured\n * and thus all required services are available. This hook is a good place to bind events that\n * should trigger activation (e.g. click on \"trigger links\" or routing events)\n * @param {object} data Custom initialization data passed to the widget.\n */\n initialize(t) {\n return this.initialized = this.initialized || (() => {\n const e = this.container.get(\"$instance\"), s = e.initialize || (() => {\n });\n return this.initialized = Promise.resolve(s.call(e, t)).then(() => L(this.container, \"initialize\", t)).then(() => {\n });\n })();\n }\n /**\n * The activation is where the widget is actually created and rendered.\n * Activation can be initialized from the outside or from an event originated\n * in the \"initialize\" hook.\n * @param {object} data Custom activation data passed to the widget.\n */\n activate(t) {\n return (this.initialized || this.initialize()).then(() => {\n this.activated = this.activated || (() => L(this.container, \"activate\").then(() => {\n const e = this.container.get(\"$instance\");\n return this.activated = e.activate(t);\n }))();\n });\n }\n deactivate() {\n const t = this.container.get(\"$instance\"), e = t.deactivate || (() => {\n });\n return L(this.container, \"deactivate\").then(() => Promise.resolve(e.call(t))).then(() => {\n this.initialized = null, this.activated = null;\n }).then(() => {\n });\n }\n /**\n * Invokes a command on the widget component.\n * @param command Name of command\n * @param args Command arguments\n */\n invoke(t, ...e) {\n return L(this.container, \"invoke\", { command: t, args: e }).then(() => {\n const s = this.container.get(\"$instance\");\n if (s[t])\n return s[t].apply(s, e);\n const i = s.invoke;\n if (i)\n return i.call(s, t, ...e);\n });\n }\n}\nconst O = (n, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let s = 0, i = e.length; s < i; s++) {\n const r = e[s].trim();\n if (r === n || r === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(n) > -1 : !1;\n}, ae = (n, t) => {\n if (typeof t == \"function\")\n return t(n);\n const e = typeof t == \"string\" ? le(t) : t;\n return !(!O(n.implementation.tenant || \"\", e.tenant || \"\") || !O(n.implementation.name, e.implementation || \"\") || !O(n.name, e.widget || \"\") || !O(n.container.get(\"$type\"), e.type || \"\"));\n}, he = (n, t) => {\n if (typeof t == \"function\")\n return t(n);\n const e = typeof t == \"string\" ? ue(t) : t;\n return !(!O(n.tenant || \"\", e.tenant || \"\") || !O(n.name, e.implementation || \"\"));\n}, Ot = (n) => (t) => ae(t, n), At = (n) => (t) => he(t, n), x = (n) => n instanceof Array && n.length === 1 ? n[0] : n, le = (n) => {\n const t = {}, e = n.split(\":\");\n return e.length === 1 ? t.widget = x(e[0].split(\",\")) : e.length === 2 ? (t.implementation = x(e[0].split(\",\")), t.widget = x(e[1].split(\",\"))) : (t.tenant = x(e[0].split(\",\")), t.implementation = x(e[1].split(\",\")), t.widget = x(e[2].split(\",\"))), t;\n}, ue = (n) => {\n const t = {}, e = n.split(\":\");\n return e.length === 1 ? t.implementation = x(e[0].split(\",\")) : (t.tenant = x(e[0].split(\",\")), t.implementation = x(e[1].split(\",\"))), t;\n}, z = A(), gt = (n, t, e) => n.filter((s) => s.stage === t && Ot(s.selector)(e));\nfunction pe(n) {\n const t = n.container.get(\"$environment\");\n let e = z(t).configurationCache;\n e && (e = e.filter((s) => s[0] !== n), z(t).configurationCache = e);\n}\nvar S = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(S || {}), $ = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))($ || {});\nconst Nt = (n, t, e) => (Object.keys(t).forEach((s) => {\n const i = t[s];\n if (typeof i == \"function\") {\n const r = i();\n typeof r.defaultArgs != \"undefined\" && e(r, ...r.defaultArgs), n[s] = (...o) => {\n const c = Object.assign(\n {},\n r,\n { handlerResolver: r.handlerResolver.bind({}) }\n );\n return e(c, ...o), n;\n };\n } else\n n[s] = Nt(\n {},\n i,\n e\n );\n}), n), de = (n, t) => {\n switch (t) {\n case \"implementation\":\n return n.implementation;\n case \"widget\":\n return n;\n }\n}, ft = (n, t, e, s) => (s.forEach((i) => {\n Nt(\n n,\n i,\n (r, ...o) => {\n const c = {\n selector: t,\n stage: r.stage,\n handler: (u) => {\n const h = de(u, r.scope), a = { container: h.container, events: h.events }, l = r.handlerResolver, p = l(a);\n let d = z(e.environment).configurationCache;\n return d || (d = z(e.environment).configurationCache = []), d.find((C) => C.indexOf(h) > -1 && C.indexOf(l) > -1) ? Promise.resolve() : (d.push([h, l]), Promise.resolve(p(...o)));\n }\n };\n e.instructions.push(c);\n }\n );\n}), n);\nfunction me(n, t) {\n function e(s) {\n return ft(\n {},\n s,\n n,\n t\n );\n }\n return ft(\n e,\n \"*\",\n n,\n t\n );\n}\nclass ge {\n constructor(t, e) {\n this.container = t, this.settings = e, this.widget = t.get(\"$widget\"), this.events = this.widget.events;\n }\n}\nconst fe = (n, t, e, s) => {\n try {\n const i = new t(e, s);\n return {\n name: n,\n invoke: (r, o) => {\n let c;\n return i[r] && (c = i[r].call(i, o)), Promise.resolve(c);\n },\n getInstance: () => i\n };\n } catch (i) {\n if (i.message && i.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (r) => {\n let o;\n return r === \"initialize\" && (o = t(e, s)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw i;\n }\n};\nfunction vt(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nclass ve {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, s) {\n let i;\n typeof e == \"function\" ? i = {\n scope: S.Widget,\n stage: $.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : i = {\n scope: vt(e.scope, S.Widget),\n stage: vt(e.stage, $.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: s\n };\n let r = this.part;\n const o = t.split(\".\");\n return o.forEach((c, u) => {\n u === o.length - 1 ? r[c] || (r[c] = () => i) : r = this.part[c] = this.part[c] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst _t = (n) => {\n const t = new ve({});\n return n(t), t.get();\n}, be = _t((n) => {\n n.createCommand(\n \"types.register\",\n { scope: S.Implementation, stage: $.Pre },\n (t) => (e, s) => {\n t.container.get(\"$types\")[e] = s;\n }\n ).createCommand(\n \"type\",\n { stage: $.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: $.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: $.Pre },\n (t) => (e, s, i) => {\n const { container: r } = t;\n let o = null, c = e, u = s;\n typeof e == \"string\" && (o = e, c = s, u = i);\n const h = (a) => {\n const { transformPluginSettings: l } = t.container.get(\"$environmentOptions\"), p = l ? l(\n u || {},\n o,\n t.container,\n c\n ) : s;\n try {\n const d = fe(\n o,\n c,\n r,\n p\n );\n r.get(\"$plugins\").push(d), a && d.invoke(\"initialize\", null);\n } catch (d) {\n g(t).warn(\"Error when initializing plugin\", d);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, s) => {\n t.container.register(e, s);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, s) => {\n t.container.registerAsync(e, s);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, s) => {\n t.container.registerFactory(e, s);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, s) => {\n t.container.touch(e, s);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n}), ye = be;\nfunction we(n, t, e = []) {\n const s = [ye].concat(e), i = me(\n t,\n s\n );\n n(i, t);\n}\nclass xe {\n constructor() {\n this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, e, s, i) {\n this.tasks.push({ task: t, resolve: e, reject: s, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n const e = Promise.resolve(t.task());\n return Promise.resolve(e).then(this.next).then(() => e.then((s) => {\n t.done(), t.resolve(s);\n })).catch((s) => (t.done(), t.reject(s), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst M = /* @__PURE__ */ new WeakMap();\nfunction $e(n) {\n return M.has(n) || M.set(n, new xe()), (t) => new Promise((e, s) => {\n const i = M.get(n);\n i.add(t, e, s, () => {\n i.tasks.length || M.delete(n);\n });\n });\n}\nconst bt = (n) => typeof n != \"undefined\", _ = (n, t) => {\n n.events.dispatch(\"widget:state-change\", { state: t }, { bubbles: !0 }), n.state = t, n.events.dispatch(\"widget:state-changed\", {}, { bubbles: !0 });\n}, v = A(), Ce = (n) => {\n const { container: t, events: e } = n;\n t.get(\"$controller\") || (t.register(\"$controller\", new ce(t)), e.dispatch(\"widget:controller-created\", {}, { bubbles: !0 }));\n};\nclass ke {\n /**\n * Creates a new `Widget` instance.\n * @param name Name of widget.\n * @param implementation The implementation this instance belongs to.\n * @param configuration Configuration for the widget.\n */\n constructor(t, e, s) {\n this.state = \"deactivated\", this.name = t, this.implementation = e, this.container = e.container.createChild(this, t), this.events = e.events.createChild(this), v(this).subscriptions = [], s && e.configure((i) => {\n const r = i(t);\n bt(s.type) && r.type(s.type), bt(s.settings) && r.settings(s.settings), s.plugins && Object.keys(s.plugins).forEach((o) => {\n var c;\n const u = (c = s.plugins) == null ? void 0 : c[o];\n r.plugin(o, u);\n });\n }), this.load = this.load.bind(this), this.activate = this.activate.bind(this), this.invoke = this.invoke.bind(this), this.deactivate = this.deactivate.bind(this);\n }\n /**\n * Initializes the widget, if not already initialized, and applies any\n * pending configuration.\n */\n load() {\n return $e(this)(() => {\n v(this).deactivatedPromise = null;\n const t = this.state === \"deactivated\";\n t && (_(\n this,\n \"activating\"\n /* Activating */\n ), this.container.register(\"$widget\", this), this.container.register(\"$controller\", null), this.container.register(\"$plugins\", []), this.container.register(\"$type\", null), this.container.register(\"$instance\", null)), _(\n this,\n \"loading\"\n /* Loading */\n );\n const e = this.implementation.instructions, s = gt(e, $.Pre, this);\n return Promise.all(s.map((i) => i.handler(this))).then(() => {\n Ce(this);\n const i = gt(e, $.Post, this);\n return Promise.all(i.map((r) => r.handler(this))).then(() => {\n t && this.container.get(\"$controller\").initialize();\n });\n }).then(() => (_(\n this,\n \"activated\"\n /* Activated */\n ), this));\n });\n }\n /**\n * Activates the widget and makes it ready for receiving commands.\n * @param data Activation data\n */\n activate(t) {\n v(this).subscriptions.push(\n this.implementation.events.subscribe(\"implementation:configured\", () => {\n [\n \"activated\",\n \"activating\",\n \"loading\"\n /* Loading */\n ].indexOf(this.state) > -1 && this.load();\n })\n );\n const e = v(this).activatedPromise;\n return e ? (process.env.NODE_ENV !== \"production\" && g(this).warn(`Widget '${this.name}' has already been activated. The passed arguments for this activation will be discarded.`, t), e) : v(this).activatedPromise = this.load().then(() => this.container.get(\"$controller\").activate(t));\n }\n /**\n * Invokes a command on a widget. If the widget isn't activate the invocation \n * will be suspended until activation.\n * @param command Command to invoke.\n * @param args Command arguments.\n */\n invoke(t, ...e) {\n const s = v(this).activatedPromise, i = (r, ...o) => s.then(this.load).then(() => this.container.get(\"$controller\").invoke(r, ...o));\n return s ? i(t, ...e) : (process.env.NODE_ENV !== \"production\" && g(this).warn(\"You are invoking a command on a deactivated widget. The invocation will be queued until the widget is activated.\", this), new Promise((r) => {\n const o = this.events.subscribe(\"widget:state-changed\", () => {\n this.state === \"activated\" && (o(), r(i(t, ...e)));\n });\n }));\n }\n /**\n * Deactivates the widget by clearing the `Container` and removing any event subscriptions in the\n * `EventManager`.\n */\n deactivate() {\n return v(this).deactivatedPromise || (this.state === \"deactivated\" ? Promise.resolve() : (_(\n this,\n \"deactivating\"\n /* Deactivating */\n ), v(this).deactivatedPromise = this.container.get(\"$controller\").deactivate().then(() => (v(this).activatedPromise = null, v(this).subscriptions.forEach((e) => e()), v(this).subscriptions = [], this.container.clear().then(() => {\n this.events.clear(), pe(this), _(\n this,\n \"deactivated\"\n /* Deactivated */\n );\n })))));\n }\n}\nclass Ee {\n /**\n * Creates a new `Widget` instance.\n * @param container The `Container` instance to base the widget upon.\n */\n constructor(t) {\n this.container = t, this.widget = t.get(\"$widget\"), this.settings = t.get(\"$settings\"), this.events = this.widget.events, this.widget.events.subscribe(\"settings:change\", (e, s) => {\n this.settings = s;\n });\n }\n}\nconst yt = A();\nclass Rt {\n /**\n * Creates a new Implementation instance.\n * @param configuration Configuration for the implementation.\n * @param environment The parent environment.\n * @param configurationApiExtensions Optional configuration API extensions.\n */\n constructor(t, e, s = []) {\n this.instructions = [], this.widgets = /* @__PURE__ */ new Map(), this.name = t.name, this.tenant = t.tenant, this.environment = e, this.container = e.container.createChild(this, this.name), this.events = e.events.createChild(this), this.container.register(\"$types\", {}), yt(this).configurationApiExtensions = s;\n }\n /**\n * Loads all widgets in the implementation.\n */\n load() {\n const t = Array.from(this.widgets.values());\n return Promise.all(t.map((e) => e.load())).then(() => t);\n }\n /**\n * Configures the implementation by adding a configuration callback.\n * @param configFn Callback function for configuration.\n */\n configure(t) {\n return we(t, this, yt(this).configurationApiExtensions), this.events.dispatch(\n \"implementation:configured\",\n { implementation: this },\n { bubbles: !0 }\n ), this;\n }\n /**\n * Creates a widget on the implementation and returns its `WidgetData`.\n * @param name Widget name.\n * @param configuration Widget configuration.\n */\n createWidget(t, e) {\n const s = new ke(t, this, e);\n return this.widgets.set(s.name, s), s;\n }\n}\nfunction Pe(n, t, e) {\n const s = new Rt(n, t, e);\n return n.widgets && Object.keys(n.widgets).forEach((i) => {\n var r;\n const o = (r = n.widgets) == null ? void 0 : r[i];\n s.createWidget(i, o);\n }), s;\n}\nlet wt = class Dt {\n constructor(t, e) {\n this.selectorFactory = e, typeof t == \"function\" ? this.resolver = t : this.resolver = () => t;\n }\n append(t) {\n const e = typeof t == \"function\" ? t : () => t;\n return new Dt(\n () => this.all().concat(e()),\n this.selectorFactory\n );\n }\n all() {\n return this.resolver().concat([]);\n }\n query(t) {\n return this.all().filter(this.selectorFactory(t));\n }\n find(t) {\n const e = this.query(t);\n if (e.length)\n return e[0];\n }\n};\nconst X = \"#____version____#\", W = A(), Oe = (n) => n.tenant ? `${n.name}:${n.tenant}` : n.name, It = class {\n constructor(n, t = [], e = {}) {\n this.widgets = new wt(\n () => {\n let s = [];\n return this.implementations.all().forEach((i) => {\n s = s.concat(Array.from(i.widgets.values()));\n }), s;\n },\n Ot\n ), this.implementations = new wt([], At), this.name = n, this.container = new K(this, n), this.events = new J(this), this.container.register(\"$version\", X), this.container.register(\"$environment\", this), this.container.register(\"$environmentOptions\", e), W(this).configurationApiExtensions = t;\n }\n /**\n * Creates an implementation based on the provided configuration.\n * @param config Implementation configuration.\n */\n createImplementation(n) {\n const t = Oe(n);\n let e = this.implementations.find(t);\n if (e)\n return process.env.NODE_ENV !== \"production\" && g(e).warn(`Implementation \"${t}\" already exist on current environment.`), e;\n const s = W(this).configurationApiExtensions;\n return e = Pe(\n n,\n this,\n s\n ), this.implementations = this.implementations.append([e]), this.events.dispatch(\"implementation:created\", { implementation: e }), e;\n }\n /**\n * Patches the Environment instance configuration.\n * @param configuration Environment configuration.\n */\n patch(n = {}) {\n const { name: t, configurationApiExtensions: e } = n;\n typeof t != \"undefined\" && t !== null && (this.name = t), e && e.forEach(\n (s) => {\n W(this).configurationApiExtensions.push(s);\n }\n );\n }\n /**\n * Creates a new Environment instance based on the provided configuration.\n * @param configuration Environment configuration.\n */\n static create(n = {}) {\n return new It(\n n.name || \"\",\n n.configurationApiExtensions,\n n.options\n );\n }\n};\nlet Lt = It;\nLt.version = X;\nconst Qe = (n, t, e = {}) => se(\n n,\n n.bindings,\n () => {\n const s = n.container.get(\"$runtimecfg\").map((i) => {\n const r = i[0];\n if (typeof r == \"function\")\n return r;\n if (At(r)(n))\n return i[1];\n }).filter((i) => !!i);\n return (t ? [t] : []).concat(s);\n },\n e.rootElementResolver || (() => document.body)\n), Ae = (n) => {\n const t = [];\n return [\n (s, i) => {\n t.push(n.subscribe(s, i));\n },\n () => {\n t.forEach((s) => {\n s();\n });\n }\n ];\n};\nclass Z {\n constructor(t, e = []) {\n this.platform = t, this.rules = e;\n }\n match(t) {\n return this.rules.every((e) => !(e.id && e.id !== t.id || e.type && e.type !== t.type));\n }\n ofType(t) {\n return this.rules.push({ type: t }), this;\n }\n withId(t) {\n return this.rules.push({ id: t }), this;\n }\n select() {\n return new Ne(this.platform, this);\n }\n}\nclass Mt {\n constructor(t, e, s) {\n this.platform = t, this.node = e, this.actions = new tt(\n t,\n new Z(t).withId(e.id),\n s\n );\n const [i, r] = Ae(\n this.platform.events\n );\n this.subscribe = i, this.unsubscribe = r;\n }\n properties(t) {\n return t && this.node.touchProperties((e) => t(e)), this.node.attributes.properties;\n }\n context(t) {\n return t && this.subscribe(\"components:context-changed\", (e, { node: s }) => {\n s === this.node && t(this.node.attributes.context);\n }), this.node.attributes.context;\n }\n layout(t) {\n return t && this.subscribe(\"components:layout-changed\", (e, { node: s }) => {\n s === this.node && t(this.node.attributes.layout);\n }), this.node.attributes.layout;\n }\n writeProperties(t, e) {\n this.node.writeProperties(t, e);\n }\n writeContext(t, e) {\n this.node.writeProperties(t, e);\n }\n writeLayout(t, e) {\n this.node.writeLayout(t, e);\n }\n dispose() {\n this.unsubscribe(), this.actions.dispose();\n }\n}\nclass Ne {\n constructor(t, e, s = !0) {\n this.platform = t, this.target = e, this.clearOnDispose = s, this.removes = [], this.actions = new tt(this.platform, this.target);\n }\n writeProperties(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { properties: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeContext(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { context: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n writeLayout(t, e) {\n this.removes.push(\n this.platform.write({\n options: e,\n attributes: { layout: t },\n target: this.target,\n removable: this.clearOnDispose\n })\n );\n }\n dispose() {\n this.removes.forEach((t) => {\n t();\n }), this.actions.dispose();\n }\n}\nconst _e = (n, t, e) => {\n const s = n.concat(), i = (r, o, c) => {\n let u = !0;\n if (s.length) {\n const h = s.shift(), a = (l, p) => (u = !1, i(l, Object.assign({}, o, p), c));\n return Promise.resolve(h(r, a, c)).then((l) => ht(I({}, l), {\n cancelled: u\n }));\n }\n return Promise.resolve({ data: r, cancelled: !1, options: o });\n };\n return i(t, {}, e);\n};\nclass tt {\n constructor(t, e, s) {\n this.platform = t, this.target = e, this.ns = s, this.subscriptions = [], this.create = this.create.bind(this);\n }\n create(t, e = () => {\n }) {\n const s = {\n key: t,\n fn: e,\n target: this.target,\n ns: this.ns\n };\n this.platform.actionsState.handlers.push(s);\n const i = () => {\n const r = this.platform.actionsState.handlers.indexOf(s);\n r > -1 && this.platform.actionsState.handlers.splice(r, 1);\n };\n return this.subscriptions.push(i), i;\n }\n dispatch(t, e) {\n const s = this.platform.nodes.all.concat(\n this.platform.nodes.detached\n ), i = {}, r = this.platform.actionsState.handlers.filter(\n (o) => o.key === t && (!o.ns || !this.ns || o.ns === this.ns)\n );\n return Promise.all(\n r.map((o) => {\n const c = s.filter(\n (h) => o.target.match(h) && this.target.match(h)\n ), u = this.platform.actionsState.watchers.filter((h) => h.key === t && (!h.ns || !this.ns || h.ns === this.ns) && c.some((a) => h.target.match(a))).map((h) => h.fn);\n return Promise.all(\n c.map((h) => {\n const a = new Mt(\n this.platform,\n h,\n this.ns\n );\n return _e(u, e, a).then((l) => {\n const { data: p = {}, options: d, cancelled: C } = l;\n return Promise.resolve(\n C ? {} : o.fn(p, d, a)\n ).then((N) => {\n i[h.id] = N;\n });\n });\n })\n );\n })\n ).then(() => i);\n }\n watch(t, e) {\n let s = t, i = this.ns;\n const r = t.split(\".\");\n r.length > 1 && (i = r[0], s = r.splice(1).join(\".\"));\n const o = {\n fn: e,\n target: this.target,\n key: s,\n ns: i\n };\n this.platform.actionsState.watchers.push(o);\n const c = () => {\n const u = this.platform.actionsState.watchers.indexOf(o);\n u > -1 && this.platform.actionsState.watchers.splice(u, 1);\n };\n return this.subscriptions.push(c), c;\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n}\nconst Ye = _t((n) => {\n n.createCommand(\"components\", (t) => (e) => {\n t.events.subscribeOnce(\n \"components:platform-created\",\n (s, { platform: i }) => {\n e.handlers && e.handlers.forEach(([r, o]) => {\n i.addComponentHandler(r, o);\n });\n }\n );\n });\n}), T = (n, t, ...e) => typeof t == \"string\" ? n(`[humany] ${t}`, ...e) : n(t, ...e), R = class {\n constructor() {\n this.keys = [], this.log = (n, ...t) => this.lookup(n, () => R.log(...t)), this.warn = (n, ...t) => this.lookup(n, () => R.warn(...t)), this.error = (n, ...t) => this.lookup(n, () => R.error(...t)), this.info = (n, ...t) => this.lookup(n, () => R.info(...t));\n }\n lookup(n, t) {\n this.keys.indexOf(n) === -1 && (this.keys.push(n), t());\n }\n};\nlet P = R;\nP.log = (...n) => T(console.log, ...n);\nP.warn = (...n) => T(console.warn, ...n);\nP.error = (...n) => T(console.error, ...n);\nP.info = (...n) => T(console.info, ...n);\nconst k = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction et() {\n return k() + k() + \"-\" + k() + \"-\" + k() + \"-\" + k() + \"-\" + k() + k() + k();\n}\nclass xt {\n constructor(t, e) {\n this.events = t, this.tags = [], this.children = {}, this.changesets = [], this.mountCount = 0, this.id = et(), this.type = e, this.attributes = {\n context: {},\n properties: {},\n layout: {},\n tags: []\n }, this.writeLayout({ size: \"full\", indent: 0 });\n }\n mount(t, e) {\n let s = t.get(\"mounted-nodes\");\n return s || (s = /* @__PURE__ */ new Map(), t.register(\"mounted-nodes\", s)), s.has(this) ? (process.env.NODE_ENV !== \"production\" && P.error(\n \"Trying to mount an already mounted component node.\",\n this\n ), () => {\n }) : (this.events.dispatch(\"components:node-mounted\", { node: this }), this.mountCount === 0 && (this.mountCount = this.mountCount + 1, this.events.dispatch(\"components:node-enter\", { node: this })), () => {\n s.delete(this), this.events.dispatch(\"components:node-unmounted\", { node: this }), this.mountCount = this.mountCount - 1, this.mountCount === 0 && this.events.dispatch(\"components:node-exit\", { node: this });\n });\n }\n appendChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].push(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n prependChild(t, e = \"default\") {\n if (t.parent) {\n if (t.parent === this)\n return;\n t.parent.removeChild(t);\n }\n t.parent = this, this.children[e] || (this.children[e] = []), this.children[e].unshift(t), this.events.dispatch(\"components:node-appended\", { node: t });\n }\n touchProperties(t, e = {}, s) {\n const r = [{ properties: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (s) {\n const o = this.changesets.indexOf(r);\n o > -1 && (this.changesets.splice(o, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeProperties(t, e = {}, s) {\n const r = [{ properties: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-properties\", { node: this }), () => {\n if (s) {\n const o = this.changesets.indexOf(r);\n o > -1 && (this.changesets.splice(o, 1), this.events.dispatch(\"components:set-properties\", { node: this }));\n }\n };\n }\n writeLayout(t, e = {}, s) {\n const r = [{ layout: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-layout\", { node: this }), () => {\n if (!s)\n return;\n const o = this.changesets.indexOf(r);\n o > -1 && (this.changesets.splice(o, 1), this.events.dispatch(\"components:set-layout\", { node: this }));\n };\n }\n writeContext(t, e = {}, s) {\n const r = [{ context: t }, e];\n return this.changesets.push(r), this.events.dispatch(\"components:set-context\", { node: this }), () => {\n if (!s)\n return;\n const o = this.changesets.indexOf(r);\n o > -1 && (this.changesets.splice(o, 1), this.events.dispatch(\"components:set-context\", { node: this }));\n };\n }\n getChildren(t = \"default\") {\n const e = this.children[t] || [];\n return e.reduce((s, i, r) => {\n const { order: o = r } = i.attributes.layout;\n return s[o] ? s.splice(o, 0, i) : s[o] = i, s;\n }, Array(e.length));\n }\n remove() {\n this.parent && this.parent.removeChild(this);\n }\n removeChild(t) {\n Object.keys(this.children).forEach((e) => {\n const s = this.children[e], i = s.indexOf(t);\n i > -1 && (s.splice(i, 1), this.events.dispatch(\"components:node-removed\", {\n node: t,\n parentNode: this\n }));\n }), delete t.parent;\n }\n}\nconst zt = (n, t, e) => {\n for (let s = 0, i = n.length; s < i && e(n[s]) !== !0; s++) {\n const r = t[n[s].id] || \"default\", o = n[s].getChildren(r);\n zt(o, t, e);\n }\n}, st = (n, t, e) => {\n if (e(n) !== !0) {\n const s = t[n.id] || \"default\", i = n.children[s];\n zt(i, t, e);\n }\n}, B = (n, t) => {\n const e = [];\n return st(n, t, (s) => {\n e.push(s);\n }), e;\n}, Re = (n, t, e) => {\n let s;\n return st(n, t, (i) => {\n if (e(i))\n return s = i, !0;\n }), s;\n};\nclass De {\n constructor(t, e, s) {\n this.root = t, this.switches = e, this.all = [], this.visible = [], this.detached = [], s.subscribe(\n \"components:node-appended\",\n (i, r) => {\n this.all.push(r.node), this.visible = B(t, e);\n }\n ), s.subscribe(\n \"components:node-removed\",\n (i, r) => {\n let o = this.all.indexOf(r.node);\n o > -1 && this.all.splice(o, 1), o = this.visible.indexOf(r.node), o > -1 && this.visible.splice(o, 1), this.visible = B(t, e);\n }\n ), s.subscribe(\n \"components:node-switched\",\n (i, r) => {\n this.visible = B(t, e);\n }\n );\n }\n query(t = {}) {\n const e = [];\n return st(this.root, this.switches, (s) => {\n Object.keys(t).every((r) => t[r] === s[r]) && e.push(s);\n }), e;\n }\n get(t) {\n return Re(this.root, this.switches, (e) => e.id === t) || this.detached.find((e) => e.id === t);\n }\n}\nclass Ie {\n constructor() {\n this.handlers = /* @__PURE__ */ new Map();\n }\n add(t, e) {\n this.handlers.set(t, e);\n }\n get(t) {\n return this.handlers.get(t);\n }\n}\nconst Le = (n) => {\n let t = n, e = 0;\n for (; t.parent; )\n e = e + 1, t = t.parent;\n return e;\n}, Me = (n) => n.map(([e, s]) => [Le(e), e, s]).sort(([e], [s]) => e - s).map(([, e, s]) => [e, s]), Q = (n) => n instanceof Date ? !1 : n && typeof n == \"object\" && !Array.isArray(n), w = (n, ...t) => {\n if (!t.length)\n return n;\n const e = t.shift();\n if (Q(n) && Q(e))\n for (const s in e)\n Q(e[s]) ? (n[s] || Object.assign(n, { [s]: {} }), w(n[s], e[s])) : Object.assign(n, { [s]: e[s] });\n return w(n, ...t);\n}, ze = (n, t) => !n || n === \"all\" ? !0 : n.some((e) => t.indexOf(e) > -1), Se = (n, t) => {\n let e = [], s = [], i;\n const r = () => {\n process.env.NODE_ENV !== \"production\" && console.time(\"state-processor.flush\");\n const c = /* @__PURE__ */ new Map(), u = Me(e.map((a, l) => [a, s[l]])), h = (a, l) => {\n var ot;\n const p = c.get(a) || {}, d = l.context && !p.context, C = l.properties && !p.properties, N = l.layout && !p.layout;\n c.set(a, {\n context: p.context || d,\n properties: p.properties || C,\n layout: p.layout || N\n }), C && (a.attributes.properties = {}), N && (a.attributes.layout = {}), d && (a.attributes.context = w({}, (ot = a.parent) == null ? void 0 : ot.attributes.context));\n const nt = [], it = [], rt = [];\n if (a.changesets.forEach((y) => {\n const [f, V] = y;\n ze(V.breakpoints, n.breakpoints) && (C && (typeof f.properties == \"function\" ? nt.push(\n f.properties\n ) : w(a.attributes.properties, f.properties)), N && (typeof f.layout == \"function\" ? it.push(f.layout) : w(a.attributes.layout, f.layout)), d && (typeof f.context == \"function\" ? rt.push(f.context) : w(a.attributes.context, f.context)));\n }), nt.forEach((y) => {\n w(a.attributes.properties, y(a.attributes.properties));\n }), it.forEach((y) => {\n w(a.attributes.layout, y(a.attributes.layout));\n }), rt.forEach((y) => {\n w(a.attributes.context, y(a.attributes.context));\n }), d || l.recursive) {\n const y = n.getBranch(a), f = l.recursive ? l : {\n context: !!d\n };\n a.getChildren(y).forEach((V) => {\n h(V, f);\n });\n }\n };\n process.env.NODE_ENV !== \"production\" && console.timeEnd(\"state-processor.flush\"), u.forEach(([a, l]) => {\n h(a, l);\n }), e = [], s = [], t(c);\n }, o = () => {\n clearTimeout(i), i = setTimeout(r, 0);\n };\n return (c, u) => {\n const h = e.indexOf(c);\n if (h > -1) {\n const a = s[h];\n return u.context && (a.context = !0), u.properties && (a.properties = !0), u.layout && (a.layout = !0), u.recursive && (a.recursive = !0), o();\n }\n return e.push(c), s.push(u), o();\n };\n};\nclass Te {\n constructor(t, e = {}) {\n this.providers = e, this.breakpoints = [], this.actionsState = { handlers: [], watchers: [] }, this.switches = {}, this.changesets = [], this.subscriptions = [], this.customComponentHandler = new Ie(), this.events = t.events.createChild(this);\n const s = new xt(this.events, \"root\");\n s.name = `root-${t.name}`, this.nodes = new De(s, this.switches, this.events);\n const i = this.processNode = Se(\n this,\n (r) => {\n const o = Array.from(r.keys());\n process.env.NODE_ENV !== \"production\" && console.info(`STATE PROCESSOR: ${o.length} node(s) processed:\n${o.map(\n (c) => `${c.name || \"<no name>\"} (${c.id})\n`\n )}`), o.forEach((c) => {\n const u = r.get(c);\n c.parent && c.parent.type === \"root\" && this.events.dispatch(\"components:root-children-changed\", { node: c }), u != null && u.context && this.events.dispatch(\"components:context-changed\", { node: c }), u != null && u.properties && this.events.dispatch(\"components:properties-changed\", { node: c }), u != null && u.layout && this.events.dispatch(\"components:layout-changed\", { node: c });\n }), this.events.dispatch(\n \"components:component-model-initialized\",\n {},\n { bubbles: !0 }\n );\n }\n );\n Promise.all(\n Object.keys(e).map((r) => e[r].load(this))\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (r, o) => {\n const { node: c } = o;\n this.changesets.forEach((u) => {\n const { changeset: h, target: a, removes: l } = u, [p, d] = h;\n a.match(o.node) && (p.properties && l.push(c.writeProperties(p.properties, d)), p.context && l.push(c.writeContext(p.context, d)), p.layout && l.push(c.writeLayout(p.layout, d)));\n });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-appended\",\n (r, o) => {\n i(o.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-properties\",\n (r, o) => {\n i(o.node, { properties: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-context\",\n (r, o) => {\n i(o.node, { properties: !0, context: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-indent\",\n (r, o) => {\n i(o.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:set-layout\",\n (r, o) => {\n i(o.node, { layout: !0 });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-switched\",\n (r, { node: o, branch: c }) => {\n i(o, {\n layout: !0,\n recursive: !0,\n properties: !0,\n context: !0\n });\n }\n )\n ), this.subscriptions.push(\n this.events.subscribe(\n \"components:node-removed\",\n (r, { parentNode: o }) => {\n i(o, { properties: !0 });\n }\n )\n ), this.events.parent && this.events.parent.dispatch(\"components:platform-created\", {\n platform: this\n });\n }\n static getInstance(t) {\n return t.getAsync(\"components\");\n }\n addBreakpoint(t) {\n this.breakpoints.indexOf(t) === -1 && (this.breakpoints.push(t), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n removeBreakpoint(t) {\n const e = this.breakpoints.indexOf(t);\n e > -1 && (this.breakpoints.splice(e, 1), this.processNode(this.nodes.root, {\n context: !0,\n properties: !0,\n layout: !0,\n recursive: !0\n }));\n }\n setSwitch(t, e) {\n this.switches[t.id] = e, this.events.dispatch(\"components:node-switched\", { node: t, branch: e });\n }\n getBranch(t) {\n return this.switches[t.id];\n }\n /**\n * Creates a `ComponentNode` of the specified type.\n * @param type Type of node.\n */\n createNode(t, e = {}) {\n const s = new xt(this.events, t);\n return e.detached && this.nodes.detached.push(s), s;\n }\n components() {\n return new Z(this);\n }\n actions(t, e) {\n return new tt(this, t, e);\n }\n write(t) {\n const {\n provider: e,\n target: s,\n attributes: i,\n options: r = {},\n removable: o\n } = t, c = t.key || et(), h = { changeset: [i, r], target: s, removes: [] };\n if (e) {\n const a = this.providers[e];\n a.write(c, s, i, r), h.removes.push(() => {\n a.remove(c);\n });\n }\n return this.changesets.push(h), this.nodes.all.forEach((a) => {\n if (s.match(a)) {\n let l = () => {\n };\n i.properties && (l = a.writeProperties(\n i.properties,\n r,\n o\n )), i.context && (l = a.writeContext(i.context, r, o)), i.layout && (l = a.writeContext(i.layout, r, o)), h.removes.push(l);\n }\n }), () => {\n if (o) {\n h.removes.forEach((l) => l());\n const a = this.changesets.indexOf(h);\n a > -1 && this.changesets.splice(a, 1);\n }\n };\n }\n addComponentHandler(t, e) {\n this.customComponentHandler.add(t, e);\n }\n getComponentHandler(t) {\n return this.customComponentHandler.get(t);\n }\n dispose() {\n this.subscriptions.forEach((t) => t());\n }\n}\nconst Ve = (n) => {\n if (Array.isArray(n)) {\n const [t, ...e] = n;\n return {\n definitionId: t,\n overrides: e\n };\n }\n return {\n definitionId: n,\n overrides: []\n };\n}, Y = (n, t, e, s, i, r) => {\n e.forEach((o) => {\n const c = Ve(o), u = s[c.definitionId];\n if (c.definitionId === \"view\") {\n const h = n.createNode(\"view\");\n h.name = \"view\", Object.keys(i).forEach((a) => {\n const l = i[a];\n Y(n, h, [l.entry], s, i, a);\n }), t.appendChild(h), c.overrides.forEach((a) => {\n a.properties && h.writeProperties(a.properties, {\n breakpoints: a.breakpoints\n }), a.context && h.writeContext(a.context, { breakpoints: a.breakpoints }), a.layout && h.writeLayout(a.layout, { breakpoints: a.breakpoints });\n });\n } else if (n.getComponentHandler(u.type)) {\n const h = n.getComponentHandler(u.type);\n h && h(c, {\n platform: n,\n node: t,\n references: e,\n definitions: s,\n views: i,\n branch: r\n });\n } else {\n const h = s[c.definitionId];\n if (process.env.NODE_ENV !== \"production\" && !h) {\n P.error(\n `No definition found for component type '${c.definitionId}'.`\n );\n return;\n }\n const a = n.createNode(h.type);\n a.name = c.definitionId, a.tags = h.tags || [], h.properties && a.writeProperties(h.properties), h.context && a.writeContext(h.context), h.layout && a.writeLayout(h.layout), t.appendChild(a, r), c.overrides.forEach((l) => {\n const p = { breakpoints: l.breakpoints };\n l.properties && a.writeProperties(l.properties, p), l.context && a.writeContext(l.context, p), l.layout && a.writeLayout(l.layout, p);\n }), h.children && Y(n, a, h.children, s, i);\n }\n });\n}, Ue = (n, t) => {\n const { entry: e, components: s, breakpoints: i, views: r } = t, o = [];\n return Object.keys(i).forEach((c) => {\n const u = i[c], h = window.matchMedia(u);\n h.matches && n.breakpoints.push(c);\n const a = (l) => {\n l.matches ? n.addBreakpoint(c) : n.removeBreakpoint(c);\n };\n h.addListener(a), o.push(() => h.removeListener(a));\n }), Y(n, n.nodes.root, [e], s, r), () => o.forEach((c) => {\n c();\n });\n}, Ge = (n, t) => ({\n id: n.id,\n type: n.type,\n name: n.name,\n branch: t || \"default\"\n}), Ke = (n, t, e, s = et(), i = {}) => n.getAsync(\"components\").then((r) => {\n let o;\n if (typeof t == \"string\") {\n const h = new Z(r);\n h.ofType(t), o = h;\n } else\n o = t;\n const c = {}, u = (h) => {\n const a = c[h.id];\n return a ? Promise.resolve(a.controller) : Te.getInstance(n).then((l) => new Mt(l, h, s));\n };\n r.events.subscribe(\n \"components:node-enter\",\n (h, { node: a }) => {\n o.match(a) && u(a).then((l) => {\n Promise.resolve(e(l)).then((p) => {\n c[a.id] = {\n dispose: p,\n controller: l\n };\n });\n });\n }\n ), r.events.subscribe(\n \"components:node-exit\",\n (h, { node: a }) => {\n const l = c[a.id];\n l && (l.dispose && l.dispose(), i.reuseController || (l.controller.dispose(), delete c[a.id]));\n }\n );\n});\nclass Je {\n constructor(t) {\n this.aliases = /* @__PURE__ */ new Map(), this.components = /* @__PURE__ */ new Map(), this.logger = new P();\n const { events: e } = t.get(\"$widget\");\n this.events = e;\n }\n getComponent(t) {\n const e = this.aliases.get(t), s = this.components.get(e || t) || null;\n return process.env.NODE_ENV !== \"production\" && (s || this.logger.warn(\n e || t,\n `Unable to resolve component: \"${e || t}\". You most likely forgot to register the required plugin for: ${e || t}.`\n )), s;\n }\n registerComponent(t, e) {\n return this.components.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.components.delete(t);\n };\n }\n registerResolver(t, e) {\n return this.events.subscribe(\n \"component-resolver:resolve\",\n (s, i) => {\n if (i === t) {\n const r = this.getComponent(t);\n e(r);\n }\n }\n );\n }\n registerAlias(t, e) {\n return this.aliases.set(t, e), this.events.dispatch(\"component-resolver:resolve\", t), () => {\n this.aliases.delete(t);\n };\n }\n}\nconst je = \"#____version____#\", St = class Tt extends Lt {\n constructor(t, e = []) {\n super(t, e, {\n transformPluginSettings: (s, i, r) => {\n const o = r.get(\"$settings\"), c = o.plugins && i ? o.plugins[i] || {} : {};\n return I(I({}, c), s);\n }\n });\n }\n createImplementation(t) {\n const e = super.createImplementation(t);\n return e.bindings = t.bindings, e;\n }\n /**\n * Performs navigation for widgets matching the specified selector by invoking a\n * 'navigate' command.\n * @param selector Widget selector matching the widget(s) to perform navigation on.\n * @param route Route name.\n * @param params Route params.\n */\n navigate(t, e, s) {\n this.widgets.query(t).forEach((i) => i.invoke(\"navigate\", { route: e, params: s }));\n }\n /**\n * Creates a runtime based on provided configuration.\n * @param configuration Runtime configuration.\n */\n static create(t = {}) {\n const e = [ne].concat(\n t.configurationApiExtensions || []\n );\n return new Tt(\"humany\", e);\n }\n /**\n * Creates a widget runtime based on provided configuration and retains configuration handlers\n * registered on global context. Use this factory to fully support the default embed script.\n * Will return any existing widget runtime if available.\n * @param configuration Runtime configuration.\n * @param global Object to read configuration handlers from (default: window).\n */\n static createFromGlobal(t, e = {}) {\n if (this.isRuntime(t))\n return t.patch(e), t;\n const s = [], i = t && t._c;\n i && i.forEach(\n (o) => s.push(o)\n );\n const r = this.create(e);\n return r.container.register(\"$runtimecfg\", s), r;\n }\n /**\n * Determines whether the specified object is a valid widget runtime.\n * @param obj Object to compare.\n */\n static isRuntime(t) {\n return !!(t && typeof t == \"object\" && t.container && typeof t.container.get == \"function\" && t.container.get(\"$environment\") === t && t.container.owner === t);\n }\n};\nSt.version = `${je} (${X})`;\nlet Xe = St;\nclass Ze extends Rt {\n constructor() {\n super(...arguments), this.bindings = [];\n }\n}\nclass ts extends ge {\n constructor(t, e) {\n super(t, e);\n }\n}\nvar qe = /* @__PURE__ */ ((n) => (n.open = \"open\", n.closed = \"closed\", n.hidden = \"hidden\", n))(qe || {});\nclass es extends Ee {\n constructor(t) {\n super(t);\n }\n}\nexport {\n He as ActionResolver,\n tt as ActionsController,\n xt as ComponentNode,\n Mt as ComponentNodeController,\n Te as ComponentPlatform,\n Z as ComponentQuery,\n Je as ComponentResolver,\n Xe as Environment,\n Ze as Implementation,\n ts as Plugin,\n qe as WidgetRenderState,\n es as WidgetType,\n Ge as asDescriptor,\n Qe as bootstrap,\n Ye as componentConfigurationApi,\n Y as createChildren,\n Ue as createComponentModel,\n Ae as createEventSubscriber,\n Ke as extendComponent,\n Re as findComponent,\n B as findVisibleComponents,\n st as traverseComponents,\n je as version\n};\n//# sourceMappingURL=index.js.map\n","var O = Object.getOwnPropertySymbols;\nvar L = Object.prototype.hasOwnProperty, B = Object.prototype.propertyIsEnumerable;\nvar x = (e, t) => {\n var o = {};\n for (var r in e)\n L.call(e, r) && t.indexOf(r) < 0 && (o[r] = e[r]);\n if (e != null && O)\n for (var r of O(e))\n t.indexOf(r) < 0 && B.call(e, r) && (o[r] = e[r]);\n return o;\n};\nfunction I(e) {\n const t = [];\n return e.forEach((o) => {\n t.indexOf(o) === -1 && t.push(o);\n }), t;\n}\nfunction k(e = \"\", t = \"\") {\n const o = e.split(\" \").concat(t.split(\" \"));\n return I(o).join(\" \").trim();\n}\nfunction U(e, t) {\n if (e) {\n if (typeof t == \"string\")\n return t;\n if (Array.isArray(t)) {\n let o = \"\";\n return t.forEach((r) => o = k(o, r)), o;\n }\n }\n}\nfunction X(...e) {\n let t = \"\";\n return e.length && e.forEach((o) => {\n typeof o == \"string\" ? t = k(t, o) : Array.isArray(o) ? t = k(t, U(...o)) : typeof o != \"undefined\" && o !== null && process.env.NODE_ENV !== \"production\" && p.warn(\n \"appendClassNames: arguments either haveto be a string or [boolean, ...string[]]. Passed args:\",\n ...e\n );\n }), t;\n}\nconst z = (e, t) => {\n let o, r = [];\n return (i) => (clearTimeout(o), new Promise((n, a) => {\n r.push([i, n, a]), o = setTimeout(() => {\n let f = t();\n r.forEach(([c, g, m]) => {\n f = c(f);\n }), r = [], n(f);\n }, e);\n }));\n}, tt = z;\nfunction T(e) {\n const t = {};\n if (typeof e == \"number\" || typeof e == \"string\")\n return e;\n for (const o in e)\n if (e.hasOwnProperty(o)) {\n const r = e[o], i = o.substring(0, 1).toLowerCase() + o.substring(1);\n if (Object.prototype.toString.call(r) === \"[object Array]\") {\n t[i] = [];\n for (let n = 0, a = r.length; n < a; n++)\n t[i].push(T(r[n]));\n } else\n r !== null && typeof r == \"object\" ? t[i] = T(r) : t[i] = r;\n }\n return t;\n}\nfunction N(e = {}) {\n const $ = e, {\n phrase: t = \"\",\n category: o,\n guideCategory: r,\n contactCategory: i,\n take: n,\n connectionKey: a,\n accordion: f,\n id: c,\n uriName: g,\n sorting: m,\n tag: u,\n tagId: l,\n tagTitle: h\n } = $, P = x($, [\n \"phrase\",\n \"category\",\n \"guideCategory\",\n \"contactCategory\",\n \"take\",\n \"connectionKey\",\n \"accordion\",\n \"id\",\n \"uriName\",\n \"sorting\",\n \"tag\",\n \"tagId\",\n \"tagTitle\"\n ]), s = {};\n return Object.keys(P).forEach((A) => {\n typeof e[A] == \"string\" && (s[A] = e[A]);\n }), typeof t == \"string\" && t.length && (s.phrase = t), t === null && (s.phrase = t), typeof r == \"string\" && r !== \"0\" && (s.guideCategory = r), typeof r == \"number\" && r !== 0 && (s.guideCategory = r), typeof r == \"object\" && r !== null && (typeof r.id == \"string\" && r.id !== \"0\" && (s.guideCategory = r.id), typeof r.id == \"number\" && r.id !== 0 && (s.guideCategory = r.id)), typeof i == \"string\" && i !== \"0\" && (s.contactCategory = i), typeof i == \"number\" && i !== 0 && (s.contactCategory = i), typeof i == \"object\" && i !== null && (typeof i.id == \"string\" && i.id !== \"0\" && (s.contactCategory = i.id), typeof i.id == \"number\" && i.id !== 0 && (s.contactCategory = i.id)), typeof o == \"string\" && o !== \"0\" && (s.category = o), typeof o == \"number\" && o !== 0 && (s.category = o), typeof o == \"object\" && o !== null && (typeof o.id == \"string\" && o.id !== \"0\" && (s.category = o.id), typeof o.id == \"number\" && o.id !== 0 && (s.category = o.id)), c && (s.id = c), g && (+s.category || +s.guideCategory || +s.guide || +s.contactCategory || +s.contactMethod) && (s.uriName = g), a && (s.connectionKey = a), n && (s.take = n), m && (s.sorting = m), typeof f == \"string\" && f.length > 0 && (s.accordion = f), typeof u == \"string\" && u !== \"0\" && (s.tag = u), typeof u == \"number\" && u !== 0 && (s.tag = u), Array.isArray(u) && u.length && (s.tag = u), (typeof l == \"string\" || typeof l == \"number\") && (s.tagId = l), typeof h == \"string\" && (s.tagTitle = h), typeof s.tag == \"string\" && (s.tag = s.tag.split(\",\")), s;\n}\nfunction* q(e) {\n if (e)\n for (let t = 0; t < e.length; t++) {\n const o = e[t];\n yield o, o.items && (yield* q(o.items));\n }\n}\nconst V = (e, t) => {\n const o = q(t);\n let r = o.next(), i = null;\n for (; !r.done; )\n r.value.id === e && (i = r.value), r = o.next();\n return i;\n}, W = V, M = (e) => {\n if (!e)\n return \"\";\n const t = [\n { from: /[äæǽ]+/gi, to: \"ae\" },\n { from: /[öœ]+/gi, to: \"oe\" },\n { from: /[ü]+/gi, to: \"ue\" },\n { from: /[Ä]+/gi, to: \"Ae\" },\n { from: /[Ü]+/gi, to: \"Ue\" },\n { from: /[Ö]+/gi, to: \"Oe\" },\n { from: /[ÀÁÂÃÄÅǺĀĂĄǍΑΆẢẠẦẪẨẬẰẮẴẲẶА]+/gi, to: \"A\" },\n { from: /[àáâãåǻāăąǎªαάảạầấẫẩậằắẵẳặа]+/gi, to: \"a\" },\n { from: /[Б]+/gi, to: \"B\" },\n { from: /[б]+/gi, to: \"b\" },\n { from: /[ÇĆĈĊČ]+/gi, to: \"C\" },\n { from: /[çćĉċč]+/gi, to: \"c\" },\n { from: /[Д]+/gi, to: \"D\" },\n { from: /[д]+/gi, to: \"d\" },\n { from: /[ÐĎĐΔ]+/gi, to: \"Dj\" },\n { from: /[ðďđδ]+/gi, to: \"dj\" },\n { from: /[ÈÉÊËĒĔĖĘĚΕΈẼẺẸỀẾỄỂỆЕЭ]+/gi, to: \"E\" },\n { from: /[èéêëēĕėęěέεẽẻẹềếễểệеэ]+/gi, to: \"e\" },\n { from: /[Ф]+/gi, to: \"F\" },\n { from: /[ф]+/gi, to: \"f\" },\n { from: /[ĜĞĠĢΓГҐ]+/gi, to: \"G\" },\n { from: /[ĝğġģγгґ]+/gi, to: \"g\" },\n { from: /[ĤĦ]+/gi, to: \"H\" },\n { from: /[ĥħ]+/gi, to: \"h\" },\n { from: /[ÌÍÎÏĨĪĬǏĮİΗΉΊΙΪỈỊИЫ]+/gi, to: \"I\" },\n { from: /[ìíîïĩīĭǐįıηήίιϊỉịиыї]+/gi, to: \"i\" },\n { from: /[Ĵ]+/gi, to: \"J\" },\n { from: /[ĵ]+/gi, to: \"j\" },\n { from: /[ĶΚК]+/gi, to: \"K\" },\n { from: /[ķκк]+/gi, to: \"k\" },\n { from: /[ĹĻĽĿŁΛЛ]+/gi, to: \"L\" },\n { from: /[ĺļľŀłλл]+/gi, to: \"l\" },\n { from: /[М]+/gi, to: \"M\" },\n { from: /[м]+/gi, to: \"m\" },\n { from: /[ÑŃŅŇΝН]+/gi, to: \"N\" },\n { from: /[ñńņňʼnνн]+/gi, to: \"n\" },\n { from: /[ÒÓÔÕŌŎǑŐƠØǾΟΌΩΏỎỌỒỐỖỔỘỜỚỠỞỢО]+/gi, to: \"O\" },\n { from: /[òóôõōŏǒőơøǿºοόωώỏọồốỗổộờớỡởợо]+/gi, to: \"o\" },\n { from: /[П]+/gi, to: \"P\" },\n { from: /[п]+/gi, to: \"p\" },\n { from: /[ŔŖŘΡР]+/gi, to: \"R\" },\n { from: /[ŕŗřρр]+/gi, to: \"r\" },\n { from: /[ŚŜŞȘŠΣС]+/gi, to: \"S\" },\n { from: /[śŝşșšſσςс]+/gi, to: \"s\" },\n { from: /[ȚŢŤŦτТ]+/gi, to: \"T\" },\n { from: /[țţťŧт]+/gi, to: \"t\" },\n { from: /[ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛŨỦỤỪỨỮỬỰУ]+/gi, to: \"U\" },\n { from: /[ùúûũūŭůűųưǔǖǘǚǜυύϋủụừứữửựу]+/gi, to: \"u\" },\n { from: /[ÝŸŶΥΎΫỲỸỶỴЙ]+/gi, to: \"Y\" },\n { from: /[ýÿŷỳỹỷỵй]+/gi, to: \"y\" },\n { from: /[В]+/gi, to: \"V\" },\n { from: /[в]+/gi, to: \"v\" },\n { from: /[Ŵ]+/gi, to: \"W\" },\n { from: /[ŵ]+/gi, to: \"w\" },\n { from: /[ŹŻŽΖЗ]+/gi, to: \"Z\" },\n { from: /[źżžζз]+/gi, to: \"z\" },\n { from: /[ÆǼ]+/gi, to: \"AE\" },\n { from: /[ß]+/gi, to: \"ss\" },\n { from: /[IJ]+/gi, to: \"IJ\" },\n { from: /[ij]+/gi, to: \"ij\" },\n { from: /[Œ]+/gi, to: \"OE\" },\n { from: /[ƒ]+/gi, to: \"f\" },\n { from: /[ξ]+/gi, to: \"ks\" },\n { from: /[π]+/gi, to: \"p\" },\n { from: /[β]+/gi, to: \"v\" },\n { from: /[μ]+/gi, to: \"m\" },\n { from: /[ψ]+/gi, to: \"ps\" },\n { from: /[Ё]+/gi, to: \"Yo\" },\n { from: /[ё]+/gi, to: \"yo\" },\n { from: /[Є]+/gi, to: \"Ye\" },\n { from: /[є]+/gi, to: \"ye\" },\n { from: /[Ї]+/gi, to: \"Yi\" },\n { from: /[Ж]+/gi, to: \"Zh\" },\n { from: /[ж]+/gi, to: \"zh\" },\n { from: /[Х]+/gi, to: \"Kh\" },\n { from: /[х]+/gi, to: \"kh\" },\n { from: /[Ц]+/gi, to: \"Ts\" },\n { from: /[ц]+/gi, to: \"ts\" },\n { from: /[Ч]+/gi, to: \"Ch\" },\n { from: /[ч]+/gi, to: \"ch\" },\n { from: /[Ш]+/gi, to: \"Sh\" },\n { from: /[ш]+/gi, to: \"sh\" },\n { from: /[Щ]+/gi, to: \"Shch\" },\n { from: /[щ]+/gi, to: \"shch\" },\n { from: /[ЪъЬь]+/gi, to: \"\" },\n { from: /[Ю]+/gi, to: \"Yu\" },\n { from: /[ю]+/gi, to: \"yu\" },\n { from: /[Я]+/gi, to: \"Ya\" },\n { from: /[я]+/gi, to: \"ya\" }\n ], o = /[^a-zA-Z0-9]+/g, r = /[-]$/;\n let i = e;\n for (const n in t)\n t.hasOwnProperty(n) && t[n].from.test(e) && (i = i.replace(t[n].from, t[n].to));\n return i = i.replace(o, \"-\"), i = i.replace(r, \"\"), i = i.toLowerCase(), i || \"humany\";\n}, E = M;\nfunction S(e, t = {}, o) {\n return e.forEach((r) => {\n o && (t[+r.id] = o), r.items && S(r.items, t, r.id);\n }), t;\n}\nfunction Y(e, t, o = [e], r = S(t)) {\n const i = (a) => {\n const f = r[+a];\n f && (o.unshift(f), i(f));\n }, n = r[+e];\n return n && (o.unshift(n), i(n)), o;\n}\nconst F = (e, t) => typeof e == \"undefined\" || typeof t == \"undefined\" ? /* @__PURE__ */ new Map() : new Map(\n e.map((o) => {\n const r = W(o, t);\n return [o, r];\n })\n), et = (e, t, o, r = \"guide-categories\") => o.getAsync(\"dataClient\").then((i) => i.fetch(r, { expandCategories: \"descendants\" }).then(({ categories: n }) => {\n const a = (f) => {\n const c = Y(f, n), g = F(c, n), m = [];\n return c.forEach((u) => {\n const l = g.get(u);\n l && m.push({\n routeName: e,\n title: l.title,\n symbol: l.symbol,\n id: l.id,\n routeParams: N(r === \"contact-method-categories\" ? {\n contactCategory: l.id,\n uriName: E(l.title)\n } : {\n guideCategory: l.id,\n uriName: E(l.title)\n })\n });\n }), m;\n };\n return Array.isArray(t) ? t.reduce((f, c) => {\n const g = a(c);\n return g.length > 0 && f.push(g), f;\n }, []) : a(t);\n})), K = (e) => {\n let t, o;\n e.split(\",\")[0].indexOf(\"base64\") !== -1 ? t = atob(e.split(\",\")[1]) : t = decodeURI(e.split(\",\")[1]), o = e.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n const r = [];\n for (let i = 0; i < t.length; i++)\n r[i] = t.charCodeAt(i);\n return new Blob([new Uint8Array(r)], { type: o });\n}, ot = K;\nfunction rt(...e) {\n return process.env.NODE_ENV !== \"production\" && console && console.warn(...e);\n}\nconst C = (e, t, ...o) => typeof t == \"string\" ? e(`[humany] ${t}`, ...o) : e(t, ...o), y = class {\n constructor() {\n this.keys = [], this.log = (e, ...t) => this.lookup(e, () => y.log(...t)), this.warn = (e, ...t) => this.lookup(e, () => y.warn(...t)), this.error = (e, ...t) => this.lookup(e, () => y.error(...t)), this.info = (e, ...t) => this.lookup(e, () => y.info(...t));\n }\n lookup(e, t) {\n this.keys.indexOf(e) === -1 && (this.keys.push(e), t());\n }\n};\nlet p = y;\np.log = (...e) => C(console.log, ...e);\np.warn = (...e) => C(console.warn, ...e);\np.error = (...e) => C(console.error, ...e);\np.info = (...e) => C(console.info, ...e);\nconst D = (e) => {\n let t = {}, o, r;\n if (typeof e != \"object\" || e === null)\n return e;\n t = Array.isArray(e) ? [] : {};\n for (r in e)\n o = e[r], t[r] = typeof o == \"object\" && o !== null ? D(o) : o;\n return t;\n}, j = D, it = (e) => {\n if (!e)\n return null;\n const t = localStorage.getItem(\n `humany_${_(e.tenant + e.name)}`\n );\n if (t) {\n const { activeStickyWidget: o } = JSON.parse(t);\n if (o && o.value && e.widgets.get(o.value)) {\n const i = document.createElement(\"a\");\n i.setAttribute(\n \"href\",\n `//${e.bindings[0]}/${o.value}`\n ), document.body.appendChild(i);\n }\n }\n}, nt = (e, t = !1) => {\n const o = new Date(e);\n let r = `${o.getMonth() + 1}`, i = `${o.getDate()}`;\n const n = o.getFullYear();\n if (r.length < 2 && (r = `0${r}`), i.length < 2 && (i = `0${i}`), t) {\n let a = `${o.getHours()}`, f = `${o.getMinutes()}`;\n return a.length < 2 && (a = `0${a}`), f.length < 2 && (f = `0${f}`), `${[n, r, i].join(\"-\")} ${[a, f].join(\":\")}`;\n }\n return [n, r, i].join(\"-\");\n};\nfunction st(e) {\n const t = document.cookie;\n if (t.length > 0) {\n let o = t.indexOf(`${e}=`);\n if (o !== -1) {\n o = o + e.length + 1;\n let r = t.indexOf(\";\", o);\n return r === -1 && (r = t.length), unescape(t.substring(o, r));\n }\n }\n return null;\n}\nfunction _(e) {\n let t = 0;\n if (e.length === 0)\n return t.toString();\n for (let o = 0; o < e.length; o++) {\n const r = e.charCodeAt(o);\n t = (t << 5) - t + r, t = t & t;\n }\n return t.toString();\n}\nconst ft = (e, t) => {\n if (!e || !t)\n return !0;\n let o = t.parentNode, r = !1;\n for (; o !== null; )\n o === e && (r = !0), o = o.parentNode;\n return r;\n};\nfunction at(e) {\n return e.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/\\s+/g, \"-\").toLowerCase();\n}\nclass Z {\n constructor(t, o) {\n this.lockWarningTime = t, this.lockErrorTime = o, this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, o, r, i) {\n this.tasks.push({ task: t, resolve: o, reject: r, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n let o;\n const r = setTimeout(() => {\n process.env.NODE_ENV !== \"production\" && p.warn(\n `A lock has exceeded ${this.lockWarningTime} ms. Waiting additional ${this.lockErrorTime} ms before rejecting the task.`,\n t\n ), o = setTimeout(() => {\n t.reject(\"lock timeout exceeded\");\n }, this.lockErrorTime);\n }, this.lockWarningTime), i = Promise.resolve(t.task()).then((n) => (clearTimeout(r), clearTimeout(o), n));\n return Promise.resolve(i).then(this.next).then(\n () => i.then((n) => {\n t.done(), t.resolve(n);\n })\n ).catch((n) => (t.done(), t.reject(n), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst b = /* @__PURE__ */ new WeakMap();\nfunction ct(e, t = 5e3, o = 1e3) {\n return b.has(e) || b.set(e, new Z(t, o)), (r) => new Promise((i, n) => {\n const a = b.get(e);\n a.add(r, i, n, () => {\n a.tasks.length || b.delete(e);\n });\n });\n}\nconst v = (e) => !!e && typeof e == \"object\" && !Array.isArray(e), J = (e, ...t) => {\n const o = j(e), r = j(t);\n return w(o, ...r);\n}, w = (e, ...t) => {\n if (!t.length)\n return e;\n const o = t.shift();\n if (v(e) && v(o))\n for (const r in o)\n v(o[r]) ? (e[r] || Object.assign(e, { [r]: {} }), w(e[r], o[r])) : Object.assign(e, { [r]: o[r] });\n return w(e, ...t);\n}, ut = J, Q = (e, t) => {\n const o = () => t.querySelectorAll(\"[data-loading=true]\").length > 0, i = (() => {\n let a = !1;\n return () => {\n if (a)\n return;\n e.get(\"$widget\").events.dispatch(\"widget:data-loaded\", {\n element: t\n }), a = !0;\n };\n })();\n if (!o())\n return i();\n new MutationObserver((a, f) => {\n a.find(\n (g) => g.type === \"attributes\" && g.attributeName === \"data-loading\"\n ) && !o() && (f.disconnect(), i());\n }).observe(t, {\n attributes: !0,\n childList: !0,\n subtree: !0\n });\n}, R = (e, t) => {\n e.get(\"$widget\").container.getAsync(\"components\").then((r) => {\n r.events.subscribeOnce(\"components:component-model-initialized\", () => {\n let i = r.nodes.visible.reduce(\n (f, c) => (!c.name || !c.type || c.type === \"view\" || c.type === \"root\" || c.attributes.layout.size === \"none\" || t.querySelector(`[data-name=\"${c.name}\"]`) || f.push(c.name), f),\n []\n ), n = !1;\n new MutationObserver((f, c) => {\n f.forEach((g) => {\n if (g.addedNodes) {\n const m = Array.from(\n g.addedNodes\n ).reduce((u, l) => {\n const h = l.getAttribute && l.getAttribute(\"data-name\");\n return h && i.indexOf(h) > -1 && u.push(h), u;\n }, []);\n i = i.filter((u) => m.indexOf(u) === -1), !n && i.length === 0 && (n = !0, Q(e, t), c.disconnect());\n }\n });\n }).observe(t, {\n attributes: !1,\n characterData: !1,\n childList: !0,\n subtree: !0,\n attributeOldValue: !1,\n characterDataOldValue: !1\n });\n });\n });\n}, lt = R, H = (e = {}) => (Object.keys(e).forEach((t) => {\n (e[t] === null || typeof e[t] == \"undefined\") && delete e[t];\n}), e), gt = H;\nfunction mt(e, t, o) {\n let r = \"\";\n if (o) {\n const i = /* @__PURE__ */ new Date();\n i.setTime(i.getTime() + o * 24 * 60 * 60 * 1e3), r = `; expires=${i.toUTCString()}`;\n }\n document.cookie = `${e}=${t}${r}; path=/`;\n}\nconst dt = (e, t) => {\n let o = !0;\n return Object.keys(e).length !== Object.keys(t).length || Object.keys(e).some((i) => !Object.keys(t).some((a) => i === a)) ? !1 : (Object.keys(e).forEach((i) => {\n if (o) {\n const n = typeof e[i] == \"undefined\" ? \"\" : e[i], a = typeof t[i] == \"undefined\" ? \"\" : t[i];\n o = n.toString() === a.toString();\n }\n }), o);\n}, d = () => Math.floor((1 + Math.random()) * 65536).toString(16).substring(1);\nfunction ht() {\n return d() + d() + \"-\" + d() + \"-\" + d() + \"-\" + d() + \"-\" + d() + d() + d();\n}\nclass pt {\n constructor(t) {\n this.queue = [], this.queueAttemptCalls = 0, this.callCount = 5, this.add = (o) => {\n this.queue.push(o), this.queueAttempt = setInterval(this.processQueue, 1e3);\n }, this.processQueue = () => {\n if (this.queue.length > 0) {\n const o = [];\n this.queue.forEach((r, i) => {\n const n = r();\n typeof n == \"function\" && (n(), o.push(i));\n }), this.queue = this.queue.filter((r, i) => !(o.indexOf(i) > -1)), this.queueAttempt && clearInterval(this.queueAttempt);\n }\n this.queueAttemptCalls > this.callCount && (clearInterval(this.queueAttempt), this.queueAttemptCalls = 0), this.queueAttemptCalls = this.queueAttemptCalls + 1;\n }, t && t.callCount && (this.callCount = t.callCount);\n }\n}\nexport {\n p as Logger,\n pt as WaitFor,\n X as appendClassNames,\n et as buildCategoryTrail,\n T as camilize,\n Y as categoryTrail,\n tt as createBatch,\n N as createParams,\n ot as dataURItoBlob,\n rt as debugLog,\n j as deepClone,\n it as findAndActivateStoredWidgets,\n W as findCategoryById,\n nt as formatDate,\n E as formatUrl,\n F as getCategoryTrailAsObjects,\n st as getCookie,\n _ as hash,\n ft as htmlParentContains,\n at as kebabCase,\n ct as lock,\n ut as mergeDeep,\n lt as notifyDataLoaded,\n gt as removeNullAndUndefinedValues,\n mt as setCookie,\n dt as shallowCompare,\n ht as uuid\n};\n//# sourceMappingURL=index.js.map\n","var q = Object.defineProperty;\nvar V = Object.getOwnPropertySymbols;\nvar B = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable;\nvar W = (n, e, t) => e in n ? q(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, p = (n, e) => {\n for (var t in e || (e = {}))\n B.call(e, t) && W(n, t, e[t]);\n if (V)\n for (var t of V(e))\n G.call(e, t) && W(n, t, e[t]);\n return n;\n};\nvar S = (n, e, t) => new Promise((r, s) => {\n var o = (a) => {\n try {\n c(t.next(a));\n } catch (g) {\n s(g);\n }\n }, i = (a) => {\n try {\n c(t.throw(a));\n } catch (g) {\n s(g);\n }\n }, c = (a) => a.done ? r(a.value) : Promise.resolve(a.value).then(o, i);\n c((t = t.apply(n, e)).next());\n});\nimport { Logger as l, lock as f, deepClone as H, hash as L } from \"@telia-ace/widget-utilities\";\nvar u = /* @__PURE__ */ ((n) => (n.Cookie = \"cookie\", n.Local = \"local\", n.Session = \"session\", n))(u || {}), C = /* @__PURE__ */ ((n) => (n.Tenant = \"tenant\", n.Implementation = \"implementation\", n.Widget = \"widget\", n))(C || {}), m = /* @__PURE__ */ ((n) => (n.Necessary = \"necessary\", n.Functional = \"functional\", n.Analytical = \"analytical\", n.Marketing = \"marketing\", n))(m || {});\nconst Q = (n, e, t, r = {}) => j(n, t).then((s) => (process.env.NODE_ENV !== \"production\" && s && l.warn(\n `createStorageWriter: Attempted to create storage writer using unallowed category.\n Key: ${e}\n Category: ${JSON.stringify(t)}\n Options: ${JSON.stringify(r)}`\n), (o) => (T(n), j(n, t).then((i) => {\n if (i) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storageWriter: Attempted to write to storage using unallowed category.\n Key: ${e}\n Category: ${JSON.stringify(t)}\n Value: ${JSON.stringify(o)}\n Options: ${JSON.stringify(r)}`\n );\n return;\n }\n const {\n scope: c = C.Widget,\n medium: a = u.Session,\n duration: g\n } = r, d = Z();\n return d[c][e] = x(o, t, g), a === u.Cookie ? re(n, d) : se(n, a, d);\n})))), X = (n, e, t = u.Session) => (T(n), typeof e == \"undefined\" ? (process.env.NODE_ENV !== \"production\" && l.warn(\"readStorage: Undefined key passed when reading storage. \", e, t), Promise.resolve(void 0)) : t === u.Cookie ? ne(n).then((r) => $(r, e)) : oe(n, t).then((r) => $(r, e))), h = (n) => !!Object.entries(n).filter(([e, t]) => typeof t != \"undefined\").length, b = (n) => Object.entries(n).filter(([e, t]) => typeof t != \"undefined\").forEach(([e, { value: t }]) => {\n typeof t == \"undefined\" && delete n[e];\n}), z = (n, e) => {\n const t = {\n tenant: p(p({}, n.tenant), e.tenant),\n implementation: p(p({}, n.implementation), e.implementation),\n widget: p(p({}, n.widget), e.widget)\n };\n return b(t.tenant), b(t.implementation), b(t.widget), t;\n}, Y = (n) => Object.entries(n).reduce((t, r) => {\n const [s, o] = r;\n return Object.entries(o).forEach((i) => {\n const [c, { expiration: a }] = i;\n a && t.push(a);\n }), t;\n}, []).slice().sort((t, r) => new Date(r).valueOf() - new Date(t).valueOf()).shift() || P(), E = (n) => {\n const {\n name: e,\n implementation: { name: t, tenant: r }\n } = n.get(\"$widget\");\n return [\n `humany_${r}`,\n `humany_${L(r + t)}`,\n `humany_${L(r + t + e)}`\n ];\n}, I = (n) => {\n const e = new RegExp(`(?:^|;)\\\\s?${n}=(.*?)(?:;|$)`, \"i\"), t = document.cookie.match(e);\n return t && t[1] && JSON.parse(t[1]) || void 0;\n}, J = (n, e, t) => {\n const r = `${n}=${JSON.stringify(e).trim()}`, s = `expires=${new Date(t).toUTCString()}`, o = \"path=/\", i = \"SameSite=None;Secure\";\n return document.cookie = `${r}; ${s}; ${o}; ${i}`;\n}, _ = (n) => {\n const [e, t, r] = E(n), s = I(e) || {}, o = I(t) || {}, i = I(r) || {};\n return {\n tenant: s,\n implementation: o,\n widget: i\n };\n}, M = (n, e) => {\n const t = _(n), r = z(t, e), [s, o, i] = E(n), { tenant: c, implementation: a, widget: g } = r, d = Y(e), w = P({ days: -1 });\n J(s, c, h(c) ? d : w), J(\n o,\n a,\n h(a) ? d : w\n ), J(i, g, h(g) ? d : w);\n}, O = (n, e) => {\n const [t, r, s] = E(n), o = e.getItem(t) || \"{}\", i = e.getItem(r) || \"{}\", c = e.getItem(s) || \"{}\";\n return {\n tenant: JSON.parse(o),\n implementation: JSON.parse(i),\n widget: JSON.parse(c)\n };\n}, K = (n, e, t) => {\n const r = O(n, e), s = z(r, t), [o, i, c] = E(n), { tenant: a, implementation: g, widget: d } = s;\n h(a) ? e.setItem(o, JSON.stringify(a)) : e.removeItem(o), h(g) ? e.setItem(i, JSON.stringify(g)) : e.removeItem(i), h(d) ? e.setItem(c, JSON.stringify(d)) : e.removeItem(c);\n}, Z = () => ({ tenant: {}, implementation: {}, widget: {} }), ee = (n) => n ? !!n && /* @__PURE__ */ new Date() > new Date(n) : !1, $ = (n, e) => {\n const t = n.widget[e] || n.implementation[e] || n.tenant[e];\n return t == null ? void 0 : t.value;\n}, x = (n, e, t) => t ? {\n value: n,\n category: e,\n expiration: typeof t == \"object\" ? P(t) : t\n} : {\n value: n,\n category: e\n}, v = (n, e) => {\n const t = H(n);\n return Object.entries(t).forEach(([r, s]) => {\n Object.entries(s).forEach(([o, i]) => {\n const { expiration: c, category: a } = i;\n (ee(c) || te(e, a)) && (s[o] = x(void 0, a, c));\n });\n }), t;\n}, j = (n, e) => X(n, \"storagePolicy\", u.Cookie).then(\n (t = [m.Necessary]) => !!e && t.indexOf(e) === -1\n), te = (n = [m.Necessary], e) => !!e && n.indexOf(e) === -1, T = (n) => {\n const e = _(n), t = O(n, window.localStorage), r = O(n, sessionStorage), s = $(e, \"storagePolicy\"), [o, i, c] = [\n e,\n t,\n r\n ].map((a) => v(a, s));\n M(n, o), K(n, window.localStorage, i), K(n, window.sessionStorage, c);\n}, P = (n = { days: 30 }) => {\n const { days: e = 0, hours: t = 0, minutes: r = 0, seconds: s = 0 } = n, o = /* @__PURE__ */ new Date();\n return o.setTime(o.getTime() + t * 60 * 60 * 1e3), o.setTime(o.getTime() + e * 24 * 60 * 60 * 1e3), o.setTime(o.getTime() + r * 60 * 1e3), o.setTime(o.getTime() + s * 1e3), o.toISOString();\n}, ne = (n) => f(document)(() => _(n)), re = (n, e) => f(document)(() => M(n, e)), oe = (n, e) => {\n const t = e === u.Local ? window.localStorage : window.sessionStorage;\n return f(t)(() => O(n, t));\n}, se = (n, e, t) => {\n const r = e === u.Local ? window.localStorage : window.sessionStorage;\n return f(r)(() => K(n, r, t));\n};\nclass k {\n constructor() {\n this.memory = {\n tenant: {},\n implementation: {},\n widget: {}\n };\n }\n setItem(s, o) {\n return S(this, arguments, function* (e, t, r = {}) {\n return f(this)(() => {\n const i = v(this.memory, [m.Necessary]), { scope: c = C.Tenant, expiration: a } = r;\n i[c][e] = x(\n t,\n m.Necessary,\n (a == null ? void 0 : a.toISOString()) || P()\n ), this.memory = i, process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value stored temporarily in memory.\n Key: ${e}\n Value: ${JSON.stringify(t)}\n Options: ${JSON.stringify(r)}\n Memory: ${JSON.stringify(i)}`\n );\n });\n });\n }\n getItem(e) {\n return S(this, null, function* () {\n return f(this)(() => {\n const t = v(this.memory, [m.Necessary]);\n process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value fetched from legacy memory storage.\n Key: ${e}\n Memory: ${JSON.stringify(t)}`\n );\n const r = $(t, e);\n return this.memory = t, r;\n });\n });\n }\n removeItem(e) {\n return S(this, null, function* () {\n return f(this)(() => {\n const t = v(this.memory, [m.Necessary]);\n delete t.tenant[e], delete t.implementation[e], delete t.widget[e], this.memory = t, process.env.NODE_ENV !== \"production\" && l.warn(\n `StorageProvider: StorageProvider is deprecated, use createStorageWriter and readStorage instead, value removed from memory.\n Key: ${e}\n Memory: ${JSON.stringify(t)}`\n );\n });\n });\n }\n clear() {\n return S(this, null, function* () {\n return Promise.resolve();\n });\n }\n}\nclass de {\n constructor() {\n this.cookies = new k(), this.session = new k(), this.local = new k();\n }\n}\nconst D = (n, e, t, ...r) => {\n const s = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${t}`;\n switch (e) {\n case \"info\":\n console.info(s, ...r);\n break;\n case \"warning\":\n console.warn(s, ...r);\n break;\n case \"error\":\n console.error(s, ...r);\n break;\n }\n}, ie = (n) => {\n const e = n.container || n;\n return {\n info: (t, ...r) => D(e, \"info\", t, ...r),\n warn: (t, ...r) => D(e, \"warning\", t, ...r),\n error: (t, ...r) => D(e, \"error\", t, ...r)\n };\n};\nvar A = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(A || {}), y = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(y || {});\nconst ae = (n, e, t, r) => {\n try {\n const s = new e(t, r);\n return {\n name: n,\n invoke: (o, i) => {\n let c;\n return s[o] && (c = s[o].call(s, i)), Promise.resolve(c);\n },\n getInstance: () => s\n };\n } catch (s) {\n if (s.message && s.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (o) => {\n let i;\n return o === \"initialize\" && (i = e(t, r)), Promise.resolve(i);\n },\n getInstance: () => e\n };\n throw s;\n }\n};\nfunction F(n, e) {\n return typeof n == \"undefined\" ? e : n;\n}\nclass ce {\n constructor(e = {}) {\n this.part = e;\n }\n createCommand(e, t, r) {\n let s;\n typeof t == \"function\" ? s = {\n scope: A.Widget,\n stage: y.Post,\n defaultArgs: void 0,\n handlerResolver: t\n } : s = {\n scope: F(t.scope, A.Widget),\n stage: F(t.stage, y.Post),\n defaultArgs: t.defaultArgs,\n handlerResolver: r\n };\n let o = this.part;\n const i = e.split(\".\");\n return i.forEach((c, a) => {\n a === i.length - 1 ? o[c] || (o[c] = () => s) : o = this.part[c] = this.part[c] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst R = (n) => {\n const e = new ce({});\n return n(e), e.get();\n};\nR((n) => {\n n.createCommand(\n \"types.register\",\n { scope: A.Implementation, stage: y.Pre },\n (e) => (t, r) => {\n e.container.get(\"$types\")[t] = r;\n }\n ).createCommand(\n \"type\",\n { stage: y.Pre },\n (e) => (t) => {\n e.container.register(\"$type\", t);\n }\n ).createCommand(\n \"settings\",\n { stage: y.Pre, defaultArgs: [null] },\n (e) => (t) => {\n e.events.dispatch(\n \"settings:change\",\n t,\n { bubbles: !0 }\n ), e.container.register(\"$settings\", t);\n }\n ).createCommand(\n \"plugin\",\n { stage: y.Pre },\n (e) => (t, r, s) => {\n const { container: o } = e;\n let i = null, c = t, a = r;\n typeof t == \"string\" && (i = t, c = r, a = s);\n const g = (d) => {\n const { transformPluginSettings: w } = e.container.get(\"$environmentOptions\"), U = w ? w(\n a || {},\n i,\n e.container,\n c\n ) : r;\n try {\n const N = ae(\n i,\n c,\n o,\n U\n );\n o.get(\"$plugins\").push(N), d && N.invoke(\"initialize\", null);\n } catch (N) {\n ie(e).warn(\"Error when initializing plugin\", N);\n }\n };\n e.container.get(\"$instance\") ? g(!0) : e.events.subscribeOnce(\"widget:instance-created\", () => g(!1));\n }\n ).createCommand(\n \"container.register\",\n (e) => (t, r) => {\n e.container.register(t, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (e) => (t, r) => {\n e.container.registerAsync(t, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (e) => (t, r) => {\n e.container.registerFactory(t, r);\n }\n ).createCommand(\n \"container.touch\",\n (e) => (t, r) => {\n e.container.touch(t, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (e) => (t) => {\n e.container.register(\"csp\", t);\n }\n );\n});\nconst le = R((n) => {\n n.createCommand(\"storage\", (e) => (t = {}) => {\n const { consent: r } = t;\n if (typeof r != \"undefined\") {\n if (typeof r != \"number\" && typeof r != \"string\" && !Array.isArray(r)) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n if (Array.isArray(r) && !r.every(\n (o) => typeof o == \"number\" || typeof o == \"string\"\n )) {\n process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent is not valid. Consent either has to be a number, a string, an array of strings or an array of numbers.\n Passed consent: ${JSON.stringify(r)}`\n );\n return;\n }\n const s = [\n m.Necessary,\n m.Functional,\n m.Analytical,\n m.Marketing\n ].filter((o, i, c) => typeof r == \"number\" ? r > i : typeof r == \"string\" ? c.indexOf(r) + 1 > i : Array.isArray(r) ? r.findIndex((a) => a === i + 1 || a === o) > -1 : !0);\n return s.indexOf(m.Necessary) === -1 && (process.env.NODE_ENV !== \"production\" && l.warn(\n `storagePolicyConfigurationApi: passed consent does not include category: '${m.Necessary}'. Consent has to atleast include the '${m.Necessary}' category.\n Passed consent: ${JSON.stringify(r)}`\n ), s.unshift(m.Necessary)), Q(\n e.container,\n \"storagePolicy\",\n m.Necessary,\n {\n medium: u.Cookie,\n scope: C.Tenant,\n duration: { days: 365 }\n }\n ).then((o) => o(s)).then(() => {\n T(e.container), e.events.dispatch(\"storage:policy-changed\", s);\n });\n }\n });\n});\nexport {\n m as StorageCategory,\n u as StorageMedium,\n de as StorageProvider,\n C as StorageScope,\n k as StorageService,\n Q as createStorageWriter,\n X as readStorage,\n le as storagePolicyConfigurationApi\n};\n//# sourceMappingURL=index.js.map\n","const f = (n, t, e, ...r) => {\n const o = `[${n.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(o, ...r);\n break;\n case \"warning\":\n console.warn(o, ...r);\n break;\n case \"error\":\n console.error(o, ...r);\n break;\n }\n}, E = (n) => {\n const t = n.container || n;\n return {\n info: (e, ...r) => f(t, \"info\", e, ...r),\n warn: (e, ...r) => f(t, \"warning\", e, ...r),\n error: (e, ...r) => f(t, \"error\", e, ...r)\n };\n}, b = (n, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let r = 0, o = e.length; r < o; r++) {\n const i = e[r].trim();\n if (i === n || i === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(n) > -1 : !1;\n}, x = (n, t) => {\n if (typeof t == \"function\")\n return t(n);\n const e = typeof t == \"string\" ? q(t) : t;\n return !(!b(n.tenant || \"\", e.tenant || \"\") || !b(n.name, e.implementation || \"\"));\n}, I = (n) => (t) => x(t, n), h = (n) => n instanceof Array && n.length === 1 ? n[0] : n, q = (n) => {\n const t = {}, e = n.split(\":\");\n return e.length === 1 ? t.implementation = h(e[0].split(\",\")) : (t.tenant = h(e[0].split(\",\")), t.implementation = h(e[1].split(\",\"))), t;\n};\nvar m = /* @__PURE__ */ ((n) => (n.Implementation = \"implementation\", n.Widget = \"widget\", n))(m || {}), g = /* @__PURE__ */ ((n) => (n.Pre = \"pre\", n.Post = \"post\", n))(g || {});\nconst L = (n, t, e, r) => {\n try {\n const o = new t(e, r);\n return {\n name: n,\n invoke: (i, s) => {\n let a;\n return o[i] && (a = o[i].call(o, s)), Promise.resolve(a);\n },\n getInstance: () => o\n };\n } catch (o) {\n if (o.message && o.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: n,\n invoke: (i) => {\n let s;\n return i === \"initialize\" && (s = t(e, r)), Promise.resolve(s);\n },\n getInstance: () => t\n };\n throw o;\n }\n};\nfunction y(n, t) {\n return typeof n == \"undefined\" ? t : n;\n}\nclass O {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, r) {\n let o;\n typeof e == \"function\" ? o = {\n scope: m.Widget,\n stage: g.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : o = {\n scope: y(e.scope, m.Widget),\n stage: y(e.stage, g.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: r\n };\n let i = this.part;\n const s = t.split(\".\");\n return s.forEach((a, c) => {\n c === s.length - 1 ? i[a] || (i[a] = () => o) : i = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst A = (n) => {\n const t = new O({});\n return n(t), t.get();\n};\nA((n) => {\n n.createCommand(\n \"types.register\",\n { scope: m.Implementation, stage: g.Pre },\n (t) => (e, r) => {\n t.container.get(\"$types\")[e] = r;\n }\n ).createCommand(\n \"type\",\n { stage: g.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: g.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: g.Pre },\n (t) => (e, r, o) => {\n const { container: i } = t;\n let s = null, a = e, c = r;\n typeof e == \"string\" && (s = e, a = r, c = o);\n const u = (l) => {\n const { transformPluginSettings: p } = t.container.get(\"$environmentOptions\"), k = p ? p(\n c || {},\n s,\n t.container,\n a\n ) : r;\n try {\n const d = L(\n s,\n a,\n i,\n k\n );\n i.get(\"$plugins\").push(d), l && d.invoke(\"initialize\", null);\n } catch (d) {\n E(t).warn(\"Error when initializing plugin\", d);\n }\n };\n t.container.get(\"$instance\") ? u(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => u(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, r) => {\n t.container.register(e, r);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, r) => {\n t.container.registerAsync(e, r);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, r) => {\n t.container.registerFactory(e, r);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, r) => {\n t.container.touch(e, r);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n});\nfunction S(n, t, e) {\n return Array.from(n.querySelectorAll(\n `div[id^=\"${t}_\"], div[id^=\"${t}:\"]`\n )).map((o) => {\n if (o.id.substr(0, 7) === `${t}_`)\n return { widgetName: o.id.substr(7), element: o };\n const { 3: i } = o.id.split(\":\");\n return { widgetName: i, element: o };\n });\n}\nconst W = (n) => {\n const t = n.map((e) => e.replace(/\\./g, \"\\\\.\")).join(\"|\");\n return new RegExp(\"^((http[s]?:)?//)?(\" + t + \")/([^\\\\s]+)\");\n}, R = (n) => n.href;\nfunction M(n, t) {\n const e = W(t), r = (i) => {\n const s = e.exec(R(i));\n return s ? {\n element: i,\n widget: s[4]\n } : null;\n };\n return Array.from(n.querySelectorAll(\"a\")).map((i) => r(i)).filter((i) => !!i).map((i) => ({\n element: i.element,\n widgetName: i.widget\n }));\n}\nfunction P(n) {\n return n.filter((t, e, r) => r.indexOf(t) === e);\n}\nclass N {\n constructor(t) {\n this.container = t.container, this.events = t.events;\n }\n watch(t) {\n const e = this.container.get(\"triggerElements\") || [], r = P(e.concat(t));\n this.container.register(\"triggerElements\", r), this.events.dispatch(\n \"bootstrap:trigger-elements-updated\",\n { triggerElements: r },\n { bubbles: !0 }\n );\n }\n}\nfunction C(n, ...t) {\n return n.implementation.events.subscribe(\"widget:create-instance\", (e, r) => {\n if (e.target === n) {\n let o = n.container.get(\"bootstrapping.monitor\");\n o || (o = new N(n), n.container.register(\"bootstrapping.monitor\", o)), o.watch(t);\n }\n }), n.load();\n}\nfunction $(n, t = document) {\n var s;\n const e = n.bindings, r = [].concat(\n M(t, e),\n S(t, ((s = n.environment) == null ? void 0 : s.name) || \"\")\n ), i = P(r.map(({ widgetName: a }) => a)).reduce((a, c) => {\n const u = n.widgets.get(c);\n if (!u)\n return process.env.NODE_ENV !== \"production\" && E(n).warn(`A trigger element for \"${c}\" was found but no widget with that name is available on the implementation (\"${n.name}\"). Make sure this is not a mistake.`), a;\n const l = r.filter((p) => p.widgetName === c).map((p) => p.element);\n return a.push(C(u, ...l)), a;\n }, []);\n return Promise.all(i);\n}\nfunction z() {\n return new Promise((n) => {\n document.readyState === \"loading\" ? document.addEventListener(\"DOMContentLoaded\", () => n()) : n();\n });\n}\nconst D = (n, t) => {\n const e = n;\n e.scan = (o) => $(e, o), e.bindings = t, e.attach = (o, ...i) => C(o, ...i);\n const { environment: r } = e;\n return typeof r.configure == \"undefined\" && (r.configure = (o, i) => {\n let s, a;\n i ? (s = o, a = i) : (s = \"*\", a = o), r.implementations.query(s).forEach((c) => c.configure(a)), r.events.subscribe(\"implementation:created\", (c, u) => {\n const { implementation: l } = u;\n I(s)(l) && l.configure(a);\n });\n }), e;\n};\nfunction B(n, t, e = () => [], r) {\n const o = { ready: !1 };\n n.container.register(\"bootstrapping\", o);\n const i = D(n, t);\n return z().then(() => {\n n.configure((...s) => {\n e().forEach((a) => a(...s));\n });\n }).then(() => $(i, r())).then(() => (o.ready = !0, n.events.dispatch(\"bootstrap:ready\", {}), i));\n}\nfunction _(n) {\n const t = {};\n return [].filter.call(n.attributes, (e) => /^data-/.test(e.name)).map((e) => e.name).forEach((e) => t[e.substr(5)] = n.getAttribute(e)), t;\n}\nconst v = (n, t, e) => {\n const r = _(n);\n e({\n sourceDOMElement: n,\n eventType: t,\n data: r\n });\n};\nfunction w(n, t, e) {\n n.forEach((r) => {\n r.dataset.attached !== \"true\" && (t === \"load\" ? v(r, t, e) : r.addEventListener(t, (o) => {\n o.preventDefault(), v(r, t, e);\n }), r.dataset.monitored = \"true\");\n });\n}\nfunction U(n, t, e) {\n const r = n.container.get(\"bootstrapping.monitor\");\n r && r.events.subscribe(\"bootstrap:trigger-elements-updated\", (i, s) => {\n w(\n s.triggerElements,\n t,\n e\n );\n });\n const o = n.container.get(\"triggerElements\");\n o && w(\n o,\n t,\n e\n );\n}\nconst j = (n, t, e) => {\n const r = n.split(\":\"), o = r[0], i = r.length > 1 ? r[1] : \"*\";\n return (t === \"*\" || o === t) && (e === \"*\" || i === e);\n};\nfunction V(n, t = \"*\", e = \"*\") {\n return n.filter((r) => {\n const o = r[0], i = r[1];\n return typeof o == \"string\" && typeof i == \"function\" ? j(o, t, e) : !1;\n }).map((r) => r[1]);\n}\nconst F = A((n) => {\n n.createCommand(\n \"ready\",\n { scope: m.Implementation, stage: g.Pre },\n (t) => (e) => {\n const { container: r } = t, o = r.owner;\n r.get(\"bootstrapping\").ready ? e(o) : o.events.subscribeOnce(\"bootstrap:ready\", () => {\n e(o);\n });\n }\n );\n});\nexport {\n F as ConfigurationApi,\n B as bootstrapImplementation,\n V as parseConfigurationHandlers,\n U as supportBootstrapping\n};\n//# sourceMappingURL=index.js.map\n","const z = /* @__PURE__ */ new WeakMap();\nfunction b() {\n return (s) => (z.has(s) || z.set(s, {}), z.get(s));\n}\nconst I = (s, t, e, ...n) => {\n const o = `[${s.get(\"$environment\").name || \"webprovisions\"}] ${e}`;\n switch (t) {\n case \"info\":\n console.info(o, ...n);\n break;\n case \"warning\":\n console.warn(o, ...n);\n break;\n case \"error\":\n console.error(o, ...n);\n break;\n }\n}, u = (s) => {\n const t = s.container || s;\n return {\n info: (e, ...n) => I(t, \"info\", e, ...n),\n warn: (e, ...n) => I(t, \"warning\", e, ...n),\n error: (e, ...n) => I(t, \"error\", e, ...n)\n };\n}, c = b(), M = (() => {\n let s = 0;\n return () => ++s;\n})(), _ = (s, t, e) => {\n const n = c(s).touchQueue.get(t);\n n && n.forEach((i) => {\n i(e, s);\n });\n};\nclass G {\n constructor(t, e, n, i) {\n this.key = t, this.factory = e, this.parent = n, this.container = i, this.id = M(), this.resolved = !1, this.constructed = !1, this.async = !0;\n }\n resolve() {\n if (!this.constructed) {\n const t = this.factory(this.parent, this.container);\n return this.constructed = !0, this.value = Promise.resolve(t).then((e) => (this.resolved = !0, _(this.container, this.key, e), e));\n }\n return this.value;\n }\n}\nclass J {\n constructor(t, e, n, i) {\n this.key = t, this.value = e, this.parent = n, this.container = i, this.id = M(), this.async = !1, this.resolved = !1, this.constructed = !0, this.resolve = () => (this.resolved = !0, _(this.container, this.key, this.value), this.value);\n }\n}\nclass X {\n constructor(t, e, n, i) {\n this.key = t, this.value = e, this.parent = n, this.container = i, this.id = M(), this.async = !1, this.resolved = !1, this.constructed = !1, this.resolve = () => {\n this.resolved = !0, this.constructed = !0;\n const r = this.value(this.parent, this.container);\n return _(this.container, this.key, this.value), r;\n };\n }\n}\nclass W {\n /**\n * Creates a new instance of `Container`.\n * @param owner The object owning this inctance.\n * @param name Optional name for the container.\n * @param parent Parent container this should be a child of.\n */\n constructor(t, e, n) {\n this.owner = t, this.name = e, this.parent = n, c(this).resolvers = /* @__PURE__ */ new Map(), c(this).touchQueue = /* @__PURE__ */ new Map(), c(this).children = [];\n }\n /**\n * Deletes an existing resolver by its unique id.\n * @param id Resolver id.\n */\n delete(t) {\n const e = c(this).resolvers, i = Array.from(e.values()).find((r) => r.id === t);\n return i ? (c(this).touchQueue.delete(i.key), Promise.resolve(e.delete(i.key))) : this.parent ? this.parent.delete(t) : Promise.resolve(!1);\n }\n /**\n * Clears the `Container` and any child containers by deleteing all registered resolvers.\n */\n clear() {\n const t = c(this).resolvers, e = Array.from(t.values());\n return Promise.all(e.map((n) => {\n if (n.constructed)\n return Promise.resolve(n.resolve()).then((i) => {\n if (i !== null && typeof i == \"object\" && typeof i.dispose == \"function\")\n return i.dispose.call(i, this, n);\n });\n })).then(() => {\n e.forEach((n) => this.delete(n.id)), c(this).children.forEach((n) => n.clear());\n });\n }\n /**\n * Detaches this `Container` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = c(this.parent).children, e = t.indexOf(this);\n e > -1 && (t.splice(e, 1), delete this.parent);\n }\n }\n /**\n * Provides a way of touching a value in the `Container` without forcing it to be resolved.\n * @param key Key of the resolved value to touch.\n * @param handler Handler function for touching the resolved value.\n */\n touch(t, e) {\n const i = c(this).resolvers.get(t);\n if (i && i.constructed)\n Promise.resolve(i.resolve()).then((o) => {\n e(o, this);\n });\n else {\n const o = c(this).touchQueue;\n let a = o.get(t);\n a || (a = [], o.set(t, a)), a.push(e);\n }\n return this.parent && !i ? this.parent.touch(t, e) : Promise.resolve();\n }\n /**\n * Registers an asynchronous resolver.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerAsync(t, e) {\n const n = c(this).resolvers.get(t);\n n && !n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering an async resolver with a key ('${t}') previously used by a non-async resolver.`);\n const i = new G(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers a factory resolver for constructing the value to be resolved.\n * @param key Key of the resolver.\n * @param factory Value factory.\n */\n registerFactory(t, e) {\n const n = c(this).resolvers.get(t);\n n && n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new X(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Registers an synchronous resolver.\n * @param key Key of the resolver.\n * @param value Value.\n */\n register(t, e) {\n const n = c(this).resolvers.get(t);\n n && n.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`Mismatching resolver type. You are registering a non-async resolver with a key ('${t}') previously used by an async resolver.`);\n const i = new J(t, e, n, this);\n return c(this).resolvers.set(t, i), i.id;\n }\n /**\n * Gets the value for a synchronous resolver.\n * @param key Key of resolver to get.\n */\n get(t) {\n const e = c(this).resolvers.get(t);\n if (e)\n return e.async && process.env.NODE_ENV !== \"production\" && u(this).warn(`You are retrieving an async value (with key '${t}') by the non-async function 'container.get(key)'. This will not be supported in future versions. Use 'container.getAsync(key) instead.'`), e.resolve();\n if (this.parent)\n return this.parent.get(t);\n }\n /**\n * Gets the value for a asynchronous resolver.\n * @param key Key of resolver to get.\n */\n getAsync(t) {\n const e = c(this).resolvers.get(t);\n if (e) {\n if (!e.async)\n throw process.env.NODE_ENV !== \"production\" && u(this).warn(`You are retrieving a non-async value (with key '${t}') by the async function 'container.getAsync(key)'.Use 'container.get(key) instead.'`), \"Mismatching resolver type\";\n return e.resolve();\n }\n return this.parent ? this.parent.getAsync(t) : Promise.resolve(void 0);\n }\n getMany(...t) {\n const e = {};\n return t.forEach((n) => e[n] = this.get(n)), e;\n }\n getManyAsync(...t) {\n const e = {};\n return Promise.all(t.map((n) => this.getAsync(n).then((i) => e[n] = i))).then(() => e);\n }\n createChild(t, e) {\n const n = new W(t, e, this);\n return c(this).children.push(n), n;\n }\n}\nclass L {\n /**\n * \n * @param type Type of event.\n * @param target The target of the event, which will handle the default behavour.\n * @param cancelable Whether the event is cancelable by calling preventDefault().\n * @param bubbles Whether the event will bubble up the parent hierarchy.\n */\n constructor(t, e, n = !1, i = !1) {\n this.type = t, this.target = e, this.cancelable = !!n, this.bubbles = !!i, this.defaultPrevented = !1;\n }\n /**\n * Cancels the default behaviour (if the event is cancelable).\n */\n preventDefault() {\n this.cancelable && (this.defaultPrevented = !0);\n }\n}\nconst p = b(), q = (s, t) => [].concat(\n p(s).listenerLookup.get(t.toLowerCase()) || [],\n p(s).listenerLookup.get(\"*\") || []\n), F = (s, t, e, n) => {\n let i, r;\n return t instanceof L ? (i = t, r = t.type) : (i = new L(t, s.target, !!e.cancelable, !!e.bubbles), r = t), { event: i, type: r, async: n };\n};\nclass D {\n /**\n * Creates a new Event Manager instance.\n * @param target The target of events dispatched from this Event Manager instance.\n * @param parent Parent Event Manager instance.\n */\n constructor(t, e) {\n this.target = t, this.parent = e, p(this).listenerLookup = /* @__PURE__ */ new Map(), p(this).children = [];\n }\n /**\n * Clears registered event listeners in this `EventManager` as well as in any children.\n */\n clear() {\n p(this).listenerLookup.clear(), p(this).children.forEach((t) => t.clear());\n }\n /**\n * Detaches this `EventManager` instance from its parent, allowing it to be garbage-collected.\n */\n detach() {\n if (this.parent) {\n const t = p(this.parent).children, e = t.indexOf(this);\n e > -1 && t.splice(e, 1);\n }\n }\n /**\n * Creates an event subscription by registering an listener for an event type.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribe(t, e, n) {\n const i = p(this).listenerLookup, r = t.toLowerCase();\n return i.has(r) || i.set(r, []), i.get(r).push(e), () => this.unsubscribe(t, e);\n }\n /**\n * Similar to `subscribe()` but immediately removes the subscription after the first call.\n * @param type Event type to subscribe to.\n * @param listener Listener for the event.\n */\n subscribeOnce(t, e) {\n const n = this.subscribe(t, (i, r) => (n(), e(i, r)));\n }\n /**\n * Removes a listener for the specified event type.\n * @param type Event type to remove subscription for.\n * @param listener Event listener to remove.\n */\n unsubscribe(t, e) {\n const n = p(this).listenerLookup.get(t.toLowerCase());\n if (n) {\n const i = n.indexOf(e);\n i > -1 && n.splice(i, 1);\n }\n }\n /**\n * Dispatches an asynchonous event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatchAsync(t, e, n = {}) {\n const { event: i, type: r } = F(this, t, n, !0), o = q(this, r);\n let a = 0;\n const l = o.length;\n let h = Promise.resolve();\n for (a = 0; a < l; a++)\n ((m) => {\n h = h.then((y) => y ? Promise.resolve(!0) : Promise.resolve(m(i, e)).then(() => i.defaultPrevented));\n })(o[a]);\n return h.then((m) => !m && i.bubbles && this.parent ? this.parent.dispatchAsync(i, e) : m);\n }\n /**\n * Dispatches an event to registered event listeners.\n * @param eventOrType Event type or Event object to dispatch.\n * @param data Optional data to be passed to event listeners.\n * @param options Optional event options used if first parameter is an event type.\n */\n dispatch(t, e, n = {}) {\n const { event: i, type: r } = F(this, t, n, !1), o = q(this, r);\n let a = 0;\n const l = o.length;\n let h = !1;\n for (a = 0; a < l; a++)\n if (o[a](i, e), i.defaultPrevented) {\n h = !0;\n break;\n }\n return !h && i.bubbles && this.parent && (h = this.parent.dispatch(i, e)), h;\n }\n /**\n * Creates a child instance to the current Event manager.\n */\n createChild(t) {\n const e = new D(t, this);\n return p(this).children.push(e), e;\n }\n}\nconst P = (s, t, e) => {\n const i = s.get(\"$plugins\").map((r) => {\n try {\n return r.invoke(t, e);\n } catch (o) {\n u(s).error(\"An error occured when invoking a plugin.\", r, o);\n }\n });\n return Promise.all(i);\n};\nclass Z {\n constructor(t) {\n this.widget = t.get(\"$widget\"), this.events = this.widget.events, this.container = this.widget.container, this.initialized = null, this.activated = null, this.initialize = this.initialize.bind(this), this.activate = this.activate.bind(this), this.deactivate = this.deactivate.bind(this), this.invoke = this.invoke.bind(this), this.createInstance();\n }\n createInstance() {\n if (!this.widget.container.get(\"$instance\")) {\n const t = this.widget.container.get(\"$types\"), e = this.widget.container.get(\"$type\");\n !e && u(this).error(\"Unable to create widget. No type is specified.\");\n const n = t[e];\n !n && u(this).error(`Unable to create widget. Type '${e}' is not registered.`), this.widget.events.dispatch(\"widget:create-instance\", {}, { bubbles: !0 });\n try {\n this.widget.container.register(\n \"$instance\",\n new n(this.container)\n );\n } catch (i) {\n u(this).error(\"Unable to create widget type.\", i);\n }\n this.widget.events.dispatch(\"widget:instance-created\", {}, { bubbles: !0 });\n }\n }\n /**\n * The initialization is performed before the widget is activated but after it's configured\n * and thus all required services are available. This hook is a good place to bind events that\n * should trigger activation (e.g. click on \"trigger links\" or routing events)\n * @param {object} data Custom initialization data passed to the widget.\n */\n initialize(t) {\n return this.initialized = this.initialized || (() => {\n const e = this.container.get(\"$instance\"), n = e.initialize || (() => {\n });\n return this.initialized = Promise.resolve(n.call(e, t)).then(() => P(this.container, \"initialize\", t)).then(() => {\n });\n })();\n }\n /**\n * The activation is where the widget is actually created and rendered.\n * Activation can be initialized from the outside or from an event originated\n * in the \"initialize\" hook.\n * @param {object} data Custom activation data passed to the widget.\n */\n activate(t) {\n return (this.initialized || this.initialize()).then(() => {\n this.activated = this.activated || (() => P(this.container, \"activate\").then(() => {\n const n = this.container.get(\"$instance\");\n return this.activated = n.activate(t);\n }))();\n });\n }\n deactivate() {\n const t = this.container.get(\"$instance\"), e = t.deactivate || (() => {\n });\n return P(this.container, \"deactivate\").then(() => Promise.resolve(e.call(t))).then(() => {\n this.initialized = null, this.activated = null;\n }).then(() => {\n });\n }\n /**\n * Invokes a command on the widget component.\n * @param command Name of command\n * @param args Command arguments\n */\n invoke(t, ...e) {\n return P(this.container, \"invoke\", { command: t, args: e }).then(() => {\n const n = this.container.get(\"$instance\");\n if (n[t])\n return n[t].apply(n, e);\n const i = n.invoke;\n if (i)\n return i.call(n, t, ...e);\n });\n }\n}\nconst w = (s, t) => {\n if (!t)\n return !0;\n if (typeof t == \"string\") {\n const e = t.split(\",\");\n for (let n = 0, i = e.length; n < i; n++) {\n const r = e[n].trim();\n if (r === s || r === \"*\")\n return !0;\n }\n }\n return t instanceof Array ? t.indexOf(s) > -1 : !1;\n}, K = (s, t) => {\n if (typeof t == \"function\")\n return t(s);\n const e = typeof t == \"string\" ? nt(t) : t;\n return !(!w(s.implementation.tenant || \"\", e.tenant || \"\") || !w(s.implementation.name, e.implementation || \"\") || !w(s.name, e.widget || \"\") || !w(s.container.get(\"$type\"), e.type || \"\"));\n}, tt = (s, t) => {\n if (typeof t == \"function\")\n return t(s);\n const e = typeof t == \"string\" ? st(t) : t;\n return !(!w(s.tenant || \"\", e.tenant || \"\") || !w(s.name, e.implementation || \"\"));\n}, Q = (s) => (t) => K(t, s), et = (s) => (t) => tt(t, s), f = (s) => s instanceof Array && s.length === 1 ? s[0] : s, nt = (s) => {\n const t = {}, e = s.split(\":\");\n return e.length === 1 ? t.widget = f(e[0].split(\",\")) : e.length === 2 ? (t.implementation = f(e[0].split(\",\")), t.widget = f(e[1].split(\",\"))) : (t.tenant = f(e[0].split(\",\")), t.implementation = f(e[1].split(\",\")), t.widget = f(e[2].split(\",\"))), t;\n}, st = (s) => {\n const t = {}, e = s.split(\":\");\n return e.length === 1 ? t.implementation = f(e[0].split(\",\")) : (t.tenant = f(e[0].split(\",\")), t.implementation = f(e[1].split(\",\"))), t;\n}, E = b(), V = (s, t, e) => s.filter((n) => n.stage === t && Q(n.selector)(e));\nfunction it(s) {\n const t = s.container.get(\"$environment\");\n let e = E(t).configurationCache;\n e && (e = e.filter((n) => n[0] !== s), E(t).configurationCache = e);\n}\nvar k = /* @__PURE__ */ ((s) => (s.Implementation = \"implementation\", s.Widget = \"widget\", s))(k || {}), g = /* @__PURE__ */ ((s) => (s.Pre = \"pre\", s.Post = \"post\", s))(g || {});\nconst T = (s, t, e) => (Object.keys(t).forEach((n) => {\n const i = t[n];\n if (typeof i == \"function\") {\n const r = i();\n typeof r.defaultArgs != \"undefined\" && e(r, ...r.defaultArgs), s[n] = (...o) => {\n const a = Object.assign(\n {},\n r,\n { handlerResolver: r.handlerResolver.bind({}) }\n );\n return e(a, ...o), s;\n };\n } else\n s[n] = T(\n {},\n i,\n e\n );\n}), s), rt = (s, t) => {\n switch (t) {\n case \"implementation\":\n return s.implementation;\n case \"widget\":\n return s;\n }\n}, O = (s, t, e, n) => (n.forEach((i) => {\n T(\n s,\n i,\n (r, ...o) => {\n const a = {\n selector: t,\n stage: r.stage,\n handler: (l) => {\n const h = rt(l, r.scope), m = { container: h.container, events: h.events }, y = r.handlerResolver, x = y(m);\n let v = E(e.environment).configurationCache;\n return v || (v = E(e.environment).configurationCache = []), v.find((R) => R.indexOf(h) > -1 && R.indexOf(y) > -1) ? Promise.resolve() : (v.push([h, y]), Promise.resolve(x(...o)));\n }\n };\n e.instructions.push(a);\n }\n );\n}), s);\nfunction ot(s, t) {\n function e(n) {\n return O(\n {},\n n,\n s,\n t\n );\n }\n return O(\n e,\n \"*\",\n s,\n t\n );\n}\nclass $t {\n constructor(t, e) {\n this.container = t, this.settings = e, this.widget = t.get(\"$widget\"), this.events = this.widget.events;\n }\n}\nconst at = (s, t, e, n) => {\n try {\n const i = new t(e, n);\n return {\n name: s,\n invoke: (r, o) => {\n let a;\n return i[r] && (a = i[r].call(i, o)), Promise.resolve(a);\n },\n getInstance: () => i\n };\n } catch (i) {\n if (i.message && i.message.indexOf(\"is not a constructor\") >= 0)\n return {\n name: s,\n invoke: (r) => {\n let o;\n return r === \"initialize\" && (o = t(e, n)), Promise.resolve(o);\n },\n getInstance: () => t\n };\n throw i;\n }\n};\nfunction j(s, t) {\n return typeof s == \"undefined\" ? t : s;\n}\nclass ct {\n constructor(t = {}) {\n this.part = t;\n }\n createCommand(t, e, n) {\n let i;\n typeof e == \"function\" ? i = {\n scope: k.Widget,\n stage: g.Post,\n defaultArgs: void 0,\n handlerResolver: e\n } : i = {\n scope: j(e.scope, k.Widget),\n stage: j(e.stage, g.Post),\n defaultArgs: e.defaultArgs,\n handlerResolver: n\n };\n let r = this.part;\n const o = t.split(\".\");\n return o.forEach((a, l) => {\n l === o.length - 1 ? r[a] || (r[a] = () => i) : r = this.part[a] = this.part[a] || {};\n }), this;\n }\n get() {\n return this.part;\n }\n}\nconst ht = (s) => {\n const t = new ct({});\n return s(t), t.get();\n}, lt = ht((s) => {\n s.createCommand(\n \"types.register\",\n { scope: k.Implementation, stage: g.Pre },\n (t) => (e, n) => {\n t.container.get(\"$types\")[e] = n;\n }\n ).createCommand(\n \"type\",\n { stage: g.Pre },\n (t) => (e) => {\n t.container.register(\"$type\", e);\n }\n ).createCommand(\n \"settings\",\n { stage: g.Pre, defaultArgs: [null] },\n (t) => (e) => {\n t.events.dispatch(\n \"settings:change\",\n e,\n { bubbles: !0 }\n ), t.container.register(\"$settings\", e);\n }\n ).createCommand(\n \"plugin\",\n { stage: g.Pre },\n (t) => (e, n, i) => {\n const { container: r } = t;\n let o = null, a = e, l = n;\n typeof e == \"string\" && (o = e, a = n, l = i);\n const h = (m) => {\n const { transformPluginSettings: y } = t.container.get(\"$environmentOptions\"), x = y ? y(\n l || {},\n o,\n t.container,\n a\n ) : n;\n try {\n const v = at(\n o,\n a,\n r,\n x\n );\n r.get(\"$plugins\").push(v), m && v.invoke(\"initialize\", null);\n } catch (v) {\n u(t).warn(\"Error when initializing plugin\", v);\n }\n };\n t.container.get(\"$instance\") ? h(!0) : t.events.subscribeOnce(\"widget:instance-created\", () => h(!1));\n }\n ).createCommand(\n \"container.register\",\n (t) => (e, n) => {\n t.container.register(e, n);\n }\n ).createCommand(\n \"container.registerAsync\",\n (t) => (e, n) => {\n t.container.registerAsync(e, n);\n }\n ).createCommand(\n \"container.registerFactory\",\n (t) => (e, n) => {\n t.container.registerFactory(e, n);\n }\n ).createCommand(\n \"container.touch\",\n (t) => (e, n) => {\n t.container.touch(e, n);\n }\n ).createCommand(\n \"csp\",\n {},\n (t) => (e) => {\n t.container.register(\"csp\", e);\n }\n );\n}), ut = lt;\nfunction dt(s, t, e = []) {\n const n = [ut].concat(e), i = ot(\n t,\n n\n );\n s(i, t);\n}\nclass pt {\n constructor() {\n this.tasks = [], this.current = Promise.resolve(), this.next = this.next.bind(this);\n }\n add(t, e, n, i) {\n this.tasks.push({ task: t, resolve: e, reject: n, done: i }), this.next();\n }\n next() {\n this.current = this.current.then(() => {\n const t = this.tasks.shift();\n if (t) {\n const e = Promise.resolve(t.task());\n return Promise.resolve(e).then(this.next).then(() => e.then((n) => {\n t.done(), t.resolve(n);\n })).catch((n) => (t.done(), t.reject(n), this.next()));\n }\n return Promise.resolve();\n });\n }\n}\nconst A = /* @__PURE__ */ new WeakMap();\nfunction vt(s) {\n return A.has(s) || A.set(s, new pt()), (t) => new Promise((e, n) => {\n const i = A.get(s);\n i.add(t, e, n, () => {\n i.tasks.length || A.delete(s);\n });\n });\n}\nconst U = (s) => typeof s != \"undefined\";\nvar ft = /* @__PURE__ */ ((s) => (s.Activating = \"activating\", s.Loading = \"loading\", s.Activated = \"activated\", s.Deactivating = \"deactivating\", s.Deactivated = \"deactivated\", s))(ft || {});\nconst $ = (s, t) => {\n s.events.dispatch(\"widget:state-change\", { state: t }, { bubbles: !0 }), s.state = t, s.events.dispatch(\"widget:state-changed\", {}, { bubbles: !0 });\n}, d = b(), gt = (s) => {\n const { container: t, events: e } = s;\n t.get(\"$controller\") || (t.register(\"$controller\", new Z(t)), e.dispatch(\"widget:controller-created\", {}, { bubbles: !0 }));\n};\nclass mt {\n /**\n * Creates a new `Widget` instance.\n * @param name Name of widget.\n * @param implementation The implementation this instance belongs to.\n * @param configuration Configuration for the widget.\n */\n constructor(t, e, n) {\n this.state = \"deactivated\", this.name = t, this.implementation = e, this.container = e.container.createChild(this, t), this.events = e.events.createChild(this), d(this).subscriptions = [], n && e.configure((i) => {\n const r = i(t);\n U(n.type) && r.type(n.type), U(n.settings) && r.settings(n.settings), n.plugins && Object.keys(n.plugins).forEach((o) => {\n var l;\n const a = (l = n.plugins) == null ? void 0 : l[o];\n r.plugin(o, a);\n });\n }), this.load = this.load.bind(this), this.activate = this.activate.bind(this), this.invoke = this.invoke.bind(this), this.deactivate = this.deactivate.bind(this);\n }\n /**\n * Initializes the widget, if not already initialized, and applies any\n * pending configuration.\n */\n load() {\n return vt(this)(() => {\n d(this).deactivatedPromise = null;\n const t = this.state === \"deactivated\";\n t && ($(\n this,\n \"activating\"\n /* Activating */\n ), this.container.register(\"$widget\", this), this.container.register(\"$controller\", null), this.container.register(\"$plugins\", []), this.container.register(\"$type\", null), this.container.register(\"$instance\", null)), $(\n this,\n \"loading\"\n /* Loading */\n );\n const e = this.implementation.instructions, n = V(e, g.Pre, this);\n return Promise.all(n.map((i) => i.handler(this))).then(() => {\n gt(this);\n const i = V(e, g.Post, this);\n return Promise.all(i.map((r) => r.handler(this))).then(() => {\n t && this.container.get(\"$controller\").initialize();\n });\n }).then(() => ($(\n this,\n \"activated\"\n /* Activated */\n ), this));\n });\n }\n /**\n * Activates the widget and makes it ready for receiving commands.\n * @param data Activation data\n */\n activate(t) {\n d(this).subscriptions.push(\n this.implementation.events.subscribe(\"implementation:configured\", () => {\n [\n \"activated\",\n \"activating\",\n \"loading\"\n /* Loading */\n ].indexOf(this.state) > -1 && this.load();\n })\n );\n const e = d(this).activatedPromise;\n return e ? (process.env.NODE_ENV !== \"production\" && u(this).warn(`Widget '${this.name}' has already been activated. The passed arguments for this activation will be discarded.`, t), e) : d(this).activatedPromise = this.load().then(() => this.container.get(\"$controller\").activate(t));\n }\n /**\n * Invokes a command on a widget. If the widget isn't activate the invocation \n * will be suspended until activation.\n * @param command Command to invoke.\n * @param args Command arguments.\n */\n invoke(t, ...e) {\n const n = d(this).activatedPromise, i = (r, ...o) => n.then(this.load).then(() => this.container.get(\"$controller\").invoke(r, ...o));\n return n ? i(t, ...e) : (process.env.NODE_ENV !== \"production\" && u(this).warn(\"You are invoking a command on a deactivated widget. The invocation will be queued until the widget is activated.\", this), new Promise((r) => {\n const o = this.events.subscribe(\"widget:state-changed\", () => {\n this.state === \"activated\" && (o(), r(i(t, ...e)));\n });\n }));\n }\n /**\n * Deactivates the widget by clearing the `Container` and removing any event subscriptions in the\n * `EventManager`.\n */\n deactivate() {\n const t = d(this).deactivatedPromise;\n return t || (this.state === \"deactivated\" ? Promise.resolve() : ($(\n this,\n \"deactivating\"\n /* Deactivating */\n ), d(this).deactivatedPromise = this.container.get(\"$controller\").deactivate().then(() => (d(this).activatedPromise = null, d(this).subscriptions.forEach((e) => e()), d(this).subscriptions = [], this.container.clear().then(() => {\n this.events.clear(), it(this), $(\n this,\n \"deactivated\"\n /* Deactivated */\n );\n })))));\n }\n}\nconst Pt = (s) => s.deactivate().then(() => {\n s.events.detach(), s.container.detach(), s.implementation.widgets.delete(s.name);\n});\nclass At {\n /**\n * Creates a new `Widget` instance.\n * @param container The `Container` instance to base the widget upon.\n */\n constructor(t) {\n this.container = t, this.widget = t.get(\"$widget\"), this.settings = t.get(\"$settings\"), this.events = this.widget.events, this.widget.events.subscribe(\"settings:change\", (e, n) => {\n this.settings = n;\n });\n }\n}\nconst Y = b();\nclass yt {\n /**\n * Creates a new Implementation instance.\n * @param configuration Configuration for the implementation.\n * @param environment The parent environment.\n * @param configurationApiExtensions Optional configuration API extensions.\n */\n constructor(t, e, n = []) {\n this.instructions = [], this.widgets = /* @__PURE__ */ new Map(), this.name = t.name, this.tenant = t.tenant, this.environment = e, this.container = e.container.createChild(this, this.name), this.events = e.events.createChild(this), this.container.register(\"$types\", {}), Y(this).configurationApiExtensions = n;\n }\n /**\n * Loads all widgets in the implementation.\n */\n load() {\n const t = Array.from(this.widgets.values());\n return Promise.all(t.map((e) => e.load())).then(() => t);\n }\n /**\n * Configures the implementation by adding a configuration callback.\n * @param configFn Callback function for configuration.\n */\n configure(t) {\n return dt(t, this, Y(this).configurationApiExtensions), this.events.dispatch(\n \"implementation:configured\",\n { implementation: this },\n { bubbles: !0 }\n ), this;\n }\n /**\n * Creates a widget on the implementation and returns its `WidgetData`.\n * @param name Widget name.\n * @param configuration Widget configuration.\n */\n createWidget(t, e) {\n const n = new mt(t, this, e);\n return this.widgets.set(n.name, n), n;\n }\n}\nfunction wt(s, t, e) {\n const n = new yt(s, t, e);\n return s.widgets && Object.keys(s.widgets).forEach((i) => {\n var o;\n const r = (o = s.widgets) == null ? void 0 : o[i];\n n.createWidget(i, r);\n }), n;\n}\nclass C {\n constructor(t, e) {\n this.selectorFactory = e, typeof t == \"function\" ? this.resolver = t : this.resolver = () => t;\n }\n append(t) {\n const e = typeof t == \"function\" ? t : () => t;\n return new C(\n () => this.all().concat(e()),\n this.selectorFactory\n );\n }\n all() {\n return this.resolver().concat([]);\n }\n query(t) {\n return this.all().filter(this.selectorFactory(t));\n }\n find(t) {\n const e = this.query(t);\n if (e.length)\n return e[0];\n }\n}\nconst S = \"#____version____#\";\nfunction Et(s, t) {\n const e = B.create(s);\n return Promise.all(\n (t || []).map((n) => Promise.resolve(n(e)))\n ).then(() => e);\n}\nconst N = b(), bt = (s) => s.tenant ? `${s.name}:${s.tenant}` : s.name, H = class {\n constructor(s, t = [], e = {}) {\n this.widgets = new C(\n () => {\n let n = [];\n return this.implementations.all().forEach((i) => {\n n = n.concat(Array.from(i.widgets.values()));\n }), n;\n },\n Q\n ), this.implementations = new C([], et), this.name = s, this.container = new W(this, s), this.events = new D(this), this.container.register(\"$version\", S), this.container.register(\"$environment\", this), this.container.register(\"$environmentOptions\", e), N(this).configurationApiExtensions = t;\n }\n /**\n * Creates an implementation based on the provided configuration.\n * @param config Implementation configuration.\n */\n createImplementation(s) {\n const t = bt(s);\n let e = this.implementations.find(t);\n if (e)\n return process.env.NODE_ENV !== \"production\" && u(e).warn(`Implementation \"${t}\" already exist on current environment.`), e;\n const n = N(this).configurationApiExtensions;\n return e = wt(\n s,\n this,\n n\n ), this.implementations = this.implementations.append([e]), this.events.dispatch(\"implementation:created\", { implementation: e }), e;\n }\n /**\n * Patches the Environment instance configuration.\n * @param configuration Environment configuration.\n */\n patch(s = {}) {\n const { name: t, configurationApiExtensions: e } = s;\n typeof t != \"undefined\" && t !== null && (this.name = t), e && e.forEach(\n (n) => {\n N(this).configurationApiExtensions.push(n);\n }\n );\n }\n /**\n * Creates a new Environment instance based on the provided configuration.\n * @param configuration Environment configuration.\n */\n static create(s = {}) {\n return new H(\n s.name || \"\",\n s.configurationApiExtensions,\n s.options\n );\n }\n};\nlet B = H;\nB.version = S;\nexport {\n k as ConfigurationScope,\n g as ConfigurationStage,\n W as Container,\n B as Environment,\n D as EventManager,\n L as EventObject,\n yt as Implementation,\n $t as Plugin,\n mt as Widget,\n Z as WidgetController,\n ft as WidgetState,\n At as WidgetType,\n ht as createConfigurationApi,\n Et as createEnvironment,\n Pt as destroy,\n Pt as destroyWidget,\n u as logger,\n et as selectImplementations,\n Q as selectWidgets,\n S as version\n};\n//# sourceMappingURL=index.js.map\n","const triggerTabHandler = (triggerDOMElement: HTMLElement) => {\r\n const toggleTabbing = (element: HTMLElement, tabbing: boolean) => {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n if (tabbing) {\r\n element.classList.add('ace-tabbing');\r\n } else {\r\n element.classList.remove('ace-tabbing');\r\n }\r\n };\r\n\r\n const handleKeydown = (e: KeyboardEvent) => {\r\n if (e.key === 'Tab') {\r\n toggleTabbing(triggerDOMElement, true);\r\n } else if (\r\n !(\r\n e.key === 'Enter' &&\r\n document.activeElement &&\r\n document.activeElement.classList.contains('ace-widget-trigger')\r\n )\r\n ) {\r\n toggleTabbing(triggerDOMElement, false);\r\n }\r\n };\r\n\r\n const handleClick = (_e: MouseEvent) => {\r\n if (\r\n document.activeElement &&\r\n document.activeElement.classList.contains('ace-widget-trigger') &&\r\n document.activeElement.classList.contains('ace-tabbing')\r\n ) {\r\n return;\r\n }\r\n toggleTabbing(triggerDOMElement, false);\r\n };\r\n\r\n document.addEventListener('keydown', handleKeydown);\r\n document.addEventListener('click', handleClick);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', handleKeydown);\r\n document.removeEventListener('click', handleClick);\r\n };\r\n};\r\n\r\nexport type TriggerElementOptions = {\r\n symbol?: { type: string; content: string };\r\n widgetName: string;\r\n label?: string;\r\n ariaLabel?: string;\r\n tooltip?: string;\r\n};\r\n\r\nexport function createTriggerElement(\r\n element: HTMLElement,\r\n options: TriggerElementOptions\r\n) {\r\n const {\r\n // symbol,\r\n widgetName,\r\n label = '',\r\n ariaLabel = '',\r\n tooltip = '',\r\n } = options;\r\n\r\n element.classList.add('ace-widget-trigger');\r\n element.classList.add(`ace-widget_${widgetName}`);\r\n\r\n if (label.length) {\r\n element.classList.add('trigger-has-text');\r\n }\r\n\r\n if (ariaLabel.length && !element.getAttribute('aria-label')) {\r\n element.setAttribute('aria-label', ariaLabel);\r\n }\r\n\r\n if (ariaLabel.length && !element.getAttribute('tabindex')) {\r\n element.setAttribute('tabindex', '0');\r\n }\r\n\r\n if (tooltip.length && !element.getAttribute('title')) {\r\n element.setAttribute('title', tooltip);\r\n }\r\n\r\n return triggerTabHandler(element);\r\n}\r\n\r\nexport function setInactive(\r\n elements: HTMLElement | HTMLElement[],\r\n title?: string\r\n) {\r\n if (elements instanceof HTMLElement) {\r\n if (title) {\r\n elements.setAttribute('title', title);\r\n }\r\n elements.classList.remove('ace-trigger-active');\r\n elements.classList.remove('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n if (title) {\r\n e.setAttribute('title', title);\r\n }\r\n e.classList.remove('ace-trigger-active');\r\n e.classList.remove('ace-trigger-loading');\r\n });\r\n }\r\n}\r\nexport function setLoading(elements: HTMLElement | HTMLElement[]) {\r\n if (elements instanceof HTMLElement) {\r\n elements.classList.remove('ace-trigger-active');\r\n elements.classList.add('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n e.classList.remove('ace-trigger-active');\r\n e.classList.add('ace-trigger-loading');\r\n });\r\n }\r\n}\r\nexport function setActive(\r\n elements: HTMLElement | HTMLElement[],\r\n title?: string\r\n) {\r\n if (elements instanceof HTMLElement) {\r\n if (title) {\r\n elements.setAttribute('title', title);\r\n }\r\n elements.classList.add('ace-trigger-active');\r\n elements.classList.remove('ace-trigger-loading');\r\n } else if (elements instanceof Array) {\r\n elements.forEach((e) => {\r\n if (title) {\r\n e.setAttribute('title', title);\r\n }\r\n e.classList.add('ace-trigger-active');\r\n e.classList.remove('ace-trigger-loading');\r\n });\r\n }\r\n}\r\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}_$Eu(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.3\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.3\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { LitElement, html, css, nothing } from 'lit';\r\nimport { property, state } from 'lit/decorators.js';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\n\r\ntype Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n\r\n// @customElement('ace-widget-trigger')\r\nexport class TriggerComponent extends LitElement {\r\n static override styles = [\r\n css`\r\n :host {\r\n --voca-rem-multiplier: 0.625;\r\n display: block;\r\n box-sizing: border-box;\r\n }\r\n\r\n .trigger {\r\n position: fixed;\r\n transform: scale(0);\r\n box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;\r\n bottom: 20px;\r\n right: 20px;\r\n z-index: 5;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n line-height: 55px;\r\n height: 55px;\r\n width: 55px;\r\n border-radius: 55px;\r\n cursor: pointer;\r\n background-color: #990ae3;\r\n font-family: Lato;\r\n text-decoration: none;\r\n border: 3px dashed transparent;\r\n box-sizing: border-box;\r\n transition: transform 200ms ease-out;\r\n }\r\n .trigger:hover {\r\n transform: scale(1.1) !important;\r\n }\r\n .trigger.rendered {\r\n transform: scale(1);\r\n }\r\n .trigger.active .trigger-icon {\r\n opacity: 0;\r\n transform: rotate(-180deg) scale(0);\r\n }\r\n .trigger.active .trigger-close {\r\n opacity: 1;\r\n transform: rotate(0deg) scale(1);\r\n }\r\n\r\n .trigger-icon {\r\n display: inline-block;\r\n line-height: inherit;\r\n text-align: center;\r\n opacity: 1;\r\n transform: rotate(0deg) scale(1);\r\n transition:\r\n opacity 200ms ease-out,\r\n transform 200ms ease-out;\r\n color: #ffffff;\r\n }\r\n .trigger-close {\r\n opacity: 0;\r\n transition: transform 200ms ease-out;\r\n transform: rotate(180deg) scale(0);\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n fill: #ffffff;\r\n }\r\n `,\r\n ];\r\n\r\n @property({ attribute: false })\r\n symbol?: Symbol;\r\n\r\n @state()\r\n active: boolean = false;\r\n\r\n @state()\r\n loaded: boolean = false;\r\n\r\n @state()\r\n icon: any;\r\n\r\n override async connectedCallback() {\r\n super.connectedCallback();\r\n\r\n this.icon = await this._renderSymbol(this.symbol);\r\n this.loaded = true;\r\n }\r\n\r\n _toggleActive() {\r\n this.active = !this.active;\r\n }\r\n\r\n async _renderSymbol(symbol?: Symbol) {\r\n const importIcon = async (iconName: string) => {\r\n const icon = await import('@teliads/icons').then((m) => {\r\n return m[iconName];\r\n });\r\n return icon;\r\n };\r\n\r\n if (symbol) {\r\n const { type, content } = symbol;\r\n switch (type) {\r\n case 'Telia': {\r\n const icon: any = await importIcon(content);\r\n if (icon) {\r\n return html`<telia-icon\r\n class=\"trigger-icon\"\r\n svg=${icon.svg}\r\n size=\"lg\"\r\n ></telia-icon>`;\r\n }\r\n return nothing;\r\n }\r\n case 'FontAwesome':\r\n return html`<i class=\"trigger-fa-icon fa fa-${content}\"></i>`;\r\n case 'Uri':\r\n return html`<i\r\n class=\"trigger-custom-icon\"\r\n style=\"background: url(${content}) no-repeat center center;background-size: contain;\"\r\n ></i>`;\r\n default:\r\n return nothing;\r\n }\r\n }\r\n }\r\n\r\n override render() {\r\n return html`<button\r\n class=${classMap({\r\n trigger: true,\r\n active: this.active,\r\n rendered: this.loaded,\r\n })}\r\n @click=${this._toggleActive}\r\n >\r\n ${this.icon}\r\n <span class=\"trigger-close\">\r\n <svg\r\n width=\"18\"\r\n height=\"9\"\r\n viewBox=\"0 0 18 9\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M9 9C8.81794 9.00045 8.63759 8.96634 8.46939 8.89965C8.3012 8.83295 8.14851 8.735 8.02015 8.61145L0.194523 1.12367C0.068294 0.99862 -0.00155266 0.831133 2.61958e-05 0.657285C0.00160506 0.483436 0.0744832 0.317136 0.202964 0.194202C0.331445 0.0712675 0.505249 0.00153576 0.686941 2.50649e-05C0.868634 -0.00148563 1.04368 0.0653456 1.17437 0.186125L9 7.6739L16.8256 0.186125C16.9563 0.0653456 17.1314 -0.00148563 17.3131 2.50649e-05C17.4948 0.00153576 17.6686 0.0712675 17.797 0.194202C17.9255 0.317136 17.9984 0.483436 18 0.657285C18.0016 0.831133 17.9317 0.99862 17.8055 1.12367L9.97985 8.61145C9.85149 8.735 9.6988 8.83295 9.53061 8.89965C9.36241 8.96634 9.18206 9.00045 9 9Z\"\r\n fill=\"white\"\r\n />\r\n </svg>\r\n </span>\r\n <span class=\"trigger-loader\">\r\n <svg viewBox=\"25 25 50 50\">\r\n <circle\r\n cx=\"50\"\r\n cy=\"50\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke=\"#000\"\r\n stroke-width=\"2\"\r\n stroke-miterlimit=\"10\"\r\n />\r\n </svg>\r\n </span>\r\n </button>`;\r\n }\r\n}\r\n","import { ViewOutletOptions } from './view-outlet';\r\nimport { TriggerComponent } from './trigger-component';\r\n\r\nenum ProvidedElements {\r\n None = 'none',\r\n WidgetDOM = 'widgetDOM',\r\n TriggerDOM = 'triggerDOM',\r\n Both = 'both',\r\n}\r\n\r\nexport enum TriggerType {\r\n Inline = 'inline',\r\n Link = 'link',\r\n Badge = 'badge',\r\n Unsupported = 'unsupported',\r\n}\r\n\r\nexport const determineProvidedElements = (\r\n widgetDOMElement?: HTMLElement,\r\n triggerDOMElement?: HTMLElement\r\n): ProvidedElements => {\r\n if (widgetDOMElement && triggerDOMElement) {\r\n return ProvidedElements.Both;\r\n }\r\n if (widgetDOMElement) {\r\n return ProvidedElements.WidgetDOM;\r\n }\r\n if (triggerDOMElement) {\r\n return ProvidedElements.TriggerDOM;\r\n }\r\n return ProvidedElements.None;\r\n};\r\n\r\nexport const determineTriggerType = (triggerDefinition?: any) => {\r\n if (!triggerDefinition) {\r\n return TriggerType.Inline;\r\n }\r\n if (typeof triggerDefinition === 'boolean' && triggerDefinition) {\r\n return TriggerType.Link;\r\n }\r\n if (\r\n typeof triggerDefinition === 'object' &&\r\n !Array.isArray(triggerDefinition)\r\n ) {\r\n return TriggerType.Badge;\r\n }\r\n return TriggerType.Unsupported;\r\n};\r\n\r\ntype PrepareDOMElementsOutput = ViewOutletOptions & {\r\n callback?: () => void;\r\n};\r\n\r\nexport const prepareDOMElements = async (\r\n name: string,\r\n providedWidgetElement?: HTMLElement,\r\n providedTriggerElement?: HTMLElement,\r\n triggerDefinition?: any,\r\n waitWithReplace: boolean = false\r\n): Promise<PrepareDOMElementsOutput> => {\r\n const providedElements = determineProvidedElements(\r\n providedWidgetElement,\r\n providedTriggerElement\r\n );\r\n const triggerType = determineTriggerType(triggerDefinition);\r\n\r\n const cachedOriginals = {\r\n widgetDOMElement: providedWidgetElement\r\n ? providedWidgetElement.cloneNode(true)\r\n : undefined,\r\n triggerDOMElement: providedTriggerElement\r\n ? providedTriggerElement.cloneNode(true)\r\n : undefined,\r\n };\r\n\r\n const output: PrepareDOMElementsOutput = {\r\n triggerType,\r\n cachedOriginals,\r\n widgetDOMElement: document.createElement('div'),\r\n };\r\n\r\n switch (providedElements) {\r\n case ProvidedElements.Both: {\r\n output.widgetDOMElement =\r\n providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n output.triggerDOMElement = providedTriggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.WidgetDOM: {\r\n output.widgetDOMElement =\r\n providedWidgetElement || document.createElement('div');\r\n if (triggerType !== TriggerType.Inline) {\r\n const triggerElement = document.body.appendChild(\r\n document.createElement('a')\r\n );\r\n if (triggerType === TriggerType.Link) {\r\n triggerElement.innerText = name;\r\n }\r\n output.triggerDOMElement = triggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.TriggerDOM: {\r\n const widgetElement = document.createElement('div');\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType === TriggerType.Inline) {\r\n // replace with widgetDOMElement in the DOM\r\n widgetElement.id = providedTriggerElement?.id || '';\r\n if (waitWithReplace) {\r\n widgetElement.style.display = 'none';\r\n providedTriggerElement?.parentNode?.appendChild(widgetElement);\r\n\r\n output.callback = () => {\r\n providedTriggerElement?.parentNode?.replaceChild(\r\n widgetElement,\r\n providedTriggerElement\r\n );\r\n widgetElement.style.display =\r\n providedTriggerElement?.style.display || 'block';\r\n };\r\n } else {\r\n providedTriggerElement?.parentNode?.replaceChild(\r\n widgetElement,\r\n providedTriggerElement\r\n );\r\n }\r\n output.cachedOriginals.widgetDOMElement = providedTriggerElement;\r\n output.cachedOriginals.triggerDOMElement = undefined;\r\n } else {\r\n output.widgetDOMElement = document.body.appendChild(widgetElement);\r\n output.triggerDOMElement = providedTriggerElement;\r\n }\r\n break;\r\n }\r\n case ProvidedElements.None: {\r\n const widgetElement = document.body.appendChild(\r\n document.createElement('div')\r\n );\r\n output.widgetDOMElement = widgetElement;\r\n if (triggerType !== TriggerType.Inline) {\r\n if (!customElements.get('ace-widget-trigger')) {\r\n customElements.define('ace-widget-trigger', TriggerComponent);\r\n }\r\n const trigger: any = document.createElement('ace-widget-trigger');\r\n trigger.symbol = triggerDefinition.symbol;\r\n\r\n document.body.appendChild(trigger);\r\n console.log('Created trigger');\r\n // if (triggerType === TriggerType.Link) {\r\n // triggerElement.innerText = name;\r\n // }\r\n output.triggerDOMElement = trigger;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return output;\r\n};\r\n","import { readStorage, StorageMedium } from '@telia-ace/widget-services';\r\nimport { notifyDataLoaded } from '@telia-ace/widget-utilities';\r\nimport { Container, Widget } from '@webprovisions/platform';\r\nimport {\r\n createTriggerElement,\r\n setActive,\r\n setLoading,\r\n} from './html-element-handlers';\r\nimport { TriggerType } from './prepare-dom';\r\n\r\nconst MODALS_STORAGE_KEY = 'modals';\r\n\r\ntype Symbol = {\r\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\r\n content: string;\r\n};\r\n\r\nexport type BadgeOptions = {\r\n symbol?: Symbol;\r\n label?: string;\r\n ariaLabel?: string;\r\n openTooltip?: string;\r\n closedTooltip?: string;\r\n};\r\n\r\nexport type ViewOutletOptions = {\r\n widgetDOMElement: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n triggerOptions?: BadgeOptions | boolean;\r\n triggerType: TriggerType;\r\n cachedOriginals: {\r\n widgetDOMElement?: Node;\r\n triggerDOMElement?: Node;\r\n };\r\n};\r\n\r\ntype Modals = {\r\n name: string;\r\n ref?: HTMLElement;\r\n selector?: string;\r\n};\r\n\r\nexport class ViewOutlet {\r\n container: Container;\r\n private unsubscribe: (() => void)[] = [];\r\n\r\n constructor(\r\n container: Container,\r\n public options: ViewOutletOptions\r\n ) {\r\n this.container = container.createChild(this);\r\n this.container.register('widgetDOMElement', this.options.widgetDOMElement);\r\n this.container.register(\r\n 'triggerDOMElement',\r\n this.options.triggerDOMElement\r\n );\r\n\r\n const widget: Widget = this.container.get('$widget');\r\n this.options.widgetDOMElement.classList.add('ace-widget');\r\n this.options.widgetDOMElement.classList.add(`ace-widget_${widget.name}`);\r\n\r\n const widgetDOMElements = container.get('widgetDOMElements') || [];\r\n container.register('widgetDOMElements', [\r\n ...widgetDOMElements,\r\n this.options.widgetDOMElement,\r\n ]);\r\n }\r\n\r\n /**\r\n * Renders the view outlet to the DOM.\r\n */\r\n render() {\r\n const { widgetDOMElement, triggerDOMElement } = this.options;\r\n\r\n const widget: Widget = this.container.get('$widget');\r\n\r\n if (widgetDOMElement.getAttribute('data-rendered') === 'true') {\r\n return Promise.resolve();\r\n }\r\n\r\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\r\n setLoading(triggerDOMElement);\r\n }\r\n\r\n return import('./render')\r\n .then((module) => module.default(this.container, widgetDOMElement))\r\n .then(() => {\r\n widgetDOMElement.setAttribute('data-rendered', 'true');\r\n\r\n if (\r\n triggerDOMElement &&\r\n this.options.triggerType === TriggerType.Badge\r\n ) {\r\n const tooltip = (this.options.triggerOptions as BadgeOptions)\r\n .openTooltip;\r\n setActive(triggerDOMElement, tooltip);\r\n }\r\n notifyDataLoaded(this.container, widgetDOMElement);\r\n\r\n const widgets = this.container.get('$environment').widgets.all();\r\n\r\n readStorage<Modals[]>(\r\n this.container,\r\n MODALS_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((modals) => {\r\n if (modals) {\r\n modals.forEach((modal) => {\r\n if (\r\n widgets.find(\r\n (w: Widget) =>\r\n w.name === modal.name && w.state === 'activated'\r\n )\r\n ) {\r\n widget.events.dispatch('widget:modal-opened', modal);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n renderBadge(options: BadgeOptions) {\r\n const { triggerDOMElement } = this.options;\r\n\r\n if (!triggerDOMElement) {\r\n return;\r\n }\r\n\r\n if (!triggerDOMElement.getAttribute('role')) {\r\n triggerDOMElement.setAttribute('role', 'button');\r\n }\r\n\r\n const { name }: Widget = this.container.get('$widget');\r\n\r\n const { label, symbol, ariaLabel, closedTooltip, openTooltip } = options;\r\n\r\n const triggerOptions = { closedTooltip, openTooltip };\r\n this.options.triggerOptions = triggerOptions;\r\n\r\n const removeTriggerListeners = createTriggerElement(triggerDOMElement, {\r\n label,\r\n symbol,\r\n ariaLabel,\r\n widgetName: name,\r\n tooltip: closedTooltip,\r\n });\r\n this.unsubscribe.push(removeTriggerListeners);\r\n }\r\n\r\n async dispose() {\r\n const { triggerDOMElement, widgetDOMElement } = this.options;\r\n if (this.options.cachedOriginals.widgetDOMElement) {\r\n if (widgetDOMElement) {\r\n widgetDOMElement.parentNode?.replaceChild(\r\n this.options.cachedOriginals.widgetDOMElement,\r\n widgetDOMElement\r\n );\r\n }\r\n }\r\n if (this.options.cachedOriginals.triggerDOMElement) {\r\n if (triggerDOMElement) {\r\n triggerDOMElement.parentNode?.replaceChild(\r\n this.options.cachedOriginals.triggerDOMElement,\r\n triggerDOMElement\r\n );\r\n }\r\n }\r\n this.unsubscribe.forEach((unsubscribe) => {\r\n unsubscribe();\r\n });\r\n widgetDOMElement.parentNode?.removeChild(widgetDOMElement);\r\n triggerDOMElement?.parentNode?.removeChild(triggerDOMElement);\r\n }\r\n}\r\n","import {\r\n ChangesetOptions,\r\n ChangesetProvider,\r\n ComponentNodeAttributes,\r\n ComponentNodeSettings,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n ComponentQueryRule,\r\n createComponentModel,\r\n WidgetSettings,\r\n} from '@telia-ace/widget-core-flamingo';\r\nimport {\r\n createStorageWriter,\r\n readStorage,\r\n StorageCategory,\r\n StorageMedium,\r\n StorageWriter,\r\n} from '@telia-ace/widget-services';\r\nimport { lock } from '@telia-ace/widget-utilities';\r\nimport { Container, Widget, WidgetState } from '@webprovisions/platform';\r\n\r\nconst STORAGE_KEY = 'changesets';\r\n\r\ntype ChangesetItem = {\r\n rules: ComponentQueryRule[];\r\n attributes: Partial<ComponentNodeAttributes>;\r\n options: ChangesetOptions;\r\n};\r\n\r\ntype ChangesetItemBag = {\r\n items?: { [key: string]: ChangesetItem };\r\n keys?: string[];\r\n};\r\n\r\nconst convertSettingsToAttributes = (\r\n settings: Partial<ComponentNodeSettings>\r\n): Partial<ComponentNodeAttributes> => {\r\n const attributes: Partial<ComponentNodeAttributes> = { tags: settings.tags };\r\n if (settings.context && typeof settings.context !== 'function') {\r\n attributes.context = settings.context;\r\n }\r\n if (settings.properties && typeof settings.properties !== 'function') {\r\n attributes.properties = settings.properties;\r\n }\r\n if (settings.layout && typeof settings.layout !== 'function') {\r\n attributes.layout = settings.layout;\r\n }\r\n\r\n return attributes;\r\n};\r\n\r\nexport class LocalStorageChangesetProvider implements ChangesetProvider {\r\n constructor(\r\n private container: Container,\r\n private storageWriter: StorageWriter\r\n ) {}\r\n\r\n static create(container: Container): Promise<LocalStorageChangesetProvider> {\r\n return createStorageWriter(\r\n container,\r\n STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ).then(\r\n (storageWriter) =>\r\n new LocalStorageChangesetProvider(container, storageWriter)\r\n );\r\n }\r\n\r\n write(\r\n key: string,\r\n target: ComponentQuery,\r\n attributes: Partial<ComponentNodeSettings>,\r\n options: ChangesetOptions\r\n ): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n const existingIndex = keys.indexOf(key);\r\n if (existingIndex > -1) {\r\n keys.splice(existingIndex, 1);\r\n }\r\n keys.push(key);\r\n items[key] = {\r\n options,\r\n attributes: convertSettingsToAttributes(attributes),\r\n rules: target.rules,\r\n };\r\n return this.storageWriter({ keys, items });\r\n });\r\n });\r\n }\r\n\r\n remove(key: string): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n const indexToRemove = keys.indexOf(key);\r\n if (indexToRemove > -1) {\r\n keys.splice(indexToRemove, 1);\r\n delete items[key];\r\n return this.storageWriter(bag);\r\n }\r\n });\r\n });\r\n }\r\n\r\n load(platform: ComponentPlatform): Promise<any> {\r\n return lock(this)(() => {\r\n return readStorage<ChangesetItemBag>(\r\n this.container,\r\n STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((bag = {}) => {\r\n const { keys = [], items = {} } = bag;\r\n keys.forEach((key) => {\r\n const item = items[key];\r\n if (item) {\r\n const { rules, attributes, options } = item;\r\n platform.write({\r\n attributes,\r\n options,\r\n target: new ComponentQuery(platform, rules),\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const createPlatform = (widget: Widget): Promise<ComponentPlatform> => {\r\n const { container } = widget;\r\n return LocalStorageChangesetProvider.create(container).then(\r\n (localStorage) => {\r\n const settings: WidgetSettings = container.get('$settings');\r\n const providers = { localStorage };\r\n const platform = new ComponentPlatform(widget, providers);\r\n const destructComponentModel = createComponentModel(platform, settings);\r\n\r\n widget.events.subscribe(\r\n 'widget:state-change',\r\n (_event, data: { state: WidgetState }) => {\r\n if (data.state === WidgetState.Deactivating) {\r\n destructComponentModel();\r\n }\r\n }\r\n );\r\n\r\n return platform;\r\n }\r\n );\r\n};\r\n","import { Container } from '@webprovisions/platform';\r\nimport { createPlatform } from './component-platform-factory';\r\n\r\nexport const createStorageService = (_container: Container) => {\r\n return import('@telia-ace/widget-services').then(({ StorageProvider }) => {\r\n return new StorageProvider();\r\n });\r\n};\r\n\r\nexport const createActionResolver = (container: Container) => {\r\n return import('@telia-ace/widget-core-flamingo').then(\r\n ({ ActionResolver }) => {\r\n return new ActionResolver(container);\r\n }\r\n );\r\n};\r\n\r\nexport const createComponentResolver = (container: Container) => {\r\n return import('@telia-ace/widget-core-flamingo').then(\r\n ({ ComponentResolver }) => {\r\n return new ComponentResolver(container);\r\n }\r\n );\r\n};\r\n\r\nexport const createComponentPlatform = (container: Container) => {\r\n return import('@telia-ace/widget-core-flamingo').then(() => {\r\n // ({ ComponentPlatform, createComponentModel }) => {\r\n return createPlatform(container.get('$widget'));\r\n });\r\n};\r\n","import {\r\n ActionResolver,\r\n ComponentPlatform,\r\n WidgetRenderState,\r\n WidgetSettings,\r\n} from '@telia-ace/widget-core-flamingo';\r\nimport {\r\n StorageCategory,\r\n StorageMedium,\r\n StorageScope,\r\n createStorageWriter,\r\n readStorage,\r\n} from '@telia-ace/widget-services';\r\nimport { uuid } from '@telia-ace/widget-utilities';\r\nimport {\r\n BootstrappingActivationData,\r\n supportBootstrapping,\r\n} from '@webprovisions/bootstrapping';\r\nimport {\r\n Container,\r\n EventSubscriptionCancellation,\r\n WidgetType,\r\n} from '@webprovisions/platform';\r\nimport {\r\n BadgeOptions,\r\n ViewOutlet,\r\n ViewOutletOptions,\r\n} from '././ui/view-outlet';\r\nimport {\r\n createActionResolver,\r\n createComponentPlatform,\r\n createComponentResolver,\r\n createStorageService,\r\n} from './services';\r\nimport { setActive, setInactive } from './ui/html-element-handlers';\r\nimport {\r\n TriggerType,\r\n determineTriggerType,\r\n prepareDOMElements,\r\n} from './ui/prepare-dom';\r\n\r\nconst SETTINGS_STORAGE_KEY = '$settings';\r\nconst OPEN_STORAGE_KEY = 'open';\r\nconst STICKY_WIDGET_STORAGE_KEY = 'activeStickyWidget';\r\n\r\nexport enum InitialRenderState {\r\n Open = 'open',\r\n Closed = 'closed',\r\n Hidden = 'hidden',\r\n Storage = 'storage',\r\n}\r\n\r\nexport type RenderData = {\r\n widgetDOMElement?: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n key?: string;\r\n open?: boolean;\r\n withRenderState?: InitialRenderState;\r\n};\r\n\r\nexport type AttachData = {\r\n widgetDOMElement?: HTMLElement;\r\n triggerDOMElement?: HTMLElement;\r\n key?: string;\r\n withRenderState?: InitialRenderState;\r\n};\r\n\r\nexport default class Widget extends WidgetType {\r\n outlets = new Map<string, ViewOutlet>();\r\n activated: Promise<void> | undefined = undefined;\r\n subs: EventSubscriptionCancellation[] = [];\r\n\r\n constructor(container: Container) {\r\n super(container);\r\n\r\n this.container.registerAsync('storage', () =>\r\n createStorageService(this.container)\r\n );\r\n\r\n this.container.registerFactory('settings', () => {\r\n return readStorage<Partial<WidgetSettings>>(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((settings = {}) => {\r\n return {\r\n ...this.container.get('$settings'),\r\n ...settings,\r\n };\r\n });\r\n });\r\n\r\n supportBootstrapping(this as any, 'load', this.handleBootstrapping);\r\n\r\n this.container.registerAsync('componentResolver', () =>\r\n createComponentResolver(this.container)\r\n );\r\n this.container.registerAsync('actionResolver', () =>\r\n createActionResolver(this.container)\r\n );\r\n this.container.register('matchMedia', window.matchMedia);\r\n this.container.registerAsync('components', () =>\r\n createComponentPlatform(this.container)\r\n );\r\n }\r\n\r\n handleBootstrapping = (activationData: BootstrappingActivationData) => {\r\n const options = {\r\n triggerDOMElement: activationData.sourceDOMElement,\r\n withRenderState: InitialRenderState.Storage,\r\n };\r\n\r\n this.container.get('settings').then((settings: any) => {\r\n const { activate } = settings;\r\n const shouldActivate =\r\n typeof activate === 'undefined' ||\r\n activate === null ||\r\n activate === true;\r\n\r\n if (shouldActivate) {\r\n this.activated = (this.activated || this.widget.activate()).then(() =>\r\n this.attach(options)\r\n );\r\n }\r\n });\r\n };\r\n\r\n initialize() {\r\n const promises = this.container.getManyAsync(\r\n 'actionResolver',\r\n 'components'\r\n ) as Promise<{\r\n actionResolver: ActionResolver;\r\n components: ComponentPlatform;\r\n }>;\r\n\r\n const cspSettings: { nonce: string } | undefined =\r\n this.container.get('csp');\r\n if (cspSettings) {\r\n if (!(window as any).webprovisionsEnvironmentVariables) {\r\n (window as any).webprovisionsEnvironmentVariables = {};\r\n }\r\n (window as any).webprovisionsEnvironmentVariables['cspNonce'] =\r\n cspSettings.nonce;\r\n }\r\n\r\n return Promise.all([promises, this.container.get('settings')]).then(\r\n ([{ actionResolver, components }, _settings]) => {\r\n actionResolver.subscribe(this.widget.name, (_origin, action, value) =>\r\n this.onAction(action, value)\r\n );\r\n\r\n const switchViewNodes = (routeName: string) => {\r\n components.nodes.query({ type: 'view' }).forEach((viewNode) => {\r\n components.setSwitch(viewNode, routeName);\r\n });\r\n };\r\n\r\n // const initialRoute = router.getInitialRoute()?.name || 'index';\r\n const initialRoute = 'index';\r\n switchViewNodes(initialRoute);\r\n\r\n this.events.subscribe('widget:data-loaded', (_e, { element }) => {\r\n if (this.widget.container.get('seoConfiguration')) {\r\n this.events.dispatch('widget:preloaded-replaced', {\r\n element,\r\n });\r\n }\r\n });\r\n\r\n // this.events.subscribe(\r\n // 'router:change',\r\n // (_e, { previous = { routeData: {} }, next = { routeData: {} } }) => {\r\n // const { routeData: prevData }: { routeData: RouteData } = previous;\r\n // const { routeData: nextData }: { routeData: RouteData } = next;\r\n\r\n // const notFoundView = Object.keys(settings.views).reduce(\r\n // (acc, key) => {\r\n // const view = settings.views[key];\r\n // if (typeof view.path === 'undefined') {\r\n // return key;\r\n // }\r\n // return acc;\r\n // },\r\n // ''\r\n // );\r\n\r\n // // route not found\r\n // if (!nextData.name && notFoundView) {\r\n // switchViewNodes(notFoundView);\r\n // } else {\r\n // switchViewNodes(nextData.name);\r\n // }\r\n\r\n // removeNullAndUndefinedValues(prevData && prevData.params);\r\n // removeNullAndUndefinedValues(nextData && nextData.params);\r\n\r\n // this.container\r\n // .getAsync('actionResolver')\r\n // .then((actionResolver: ActionResolver) => {\r\n // actionResolver.action(this.widget.name, 'routeChange', {\r\n // next: nextData,\r\n // previous: prevData,\r\n // });\r\n // });\r\n // }\r\n // );\r\n\r\n // return router.initialize();\r\n return Promise.resolve();\r\n }\r\n );\r\n }\r\n\r\n attach(attachData: AttachData = {}) {\r\n return this.container\r\n .get('settings')\r\n .then(async ({ trigger }: WidgetSettings) => {\r\n const {\r\n widgetDOMElement,\r\n key = uuid(),\r\n triggerDOMElement,\r\n withRenderState,\r\n } = attachData;\r\n\r\n const triggerType = determineTriggerType(trigger);\r\n\r\n // This could probably be defined already when bootstrapping occurs,\r\n // Webprovisions knows when a widget is prerendered,\r\n // see \"queryPrerenderedTargets in @webprovisions/bootstrapping\"\r\n const waitWithReplace =\r\n triggerType === TriggerType.Inline &&\r\n (triggerDOMElement?.childElementCount || 0) > 0;\r\n\r\n const outletOptions = await prepareDOMElements(\r\n this.widget.name,\r\n widgetDOMElement,\r\n triggerDOMElement,\r\n trigger,\r\n waitWithReplace\r\n );\r\n\r\n if (this.outlets.size < 1 && !withRenderState) {\r\n this.setRenderState('unset');\r\n }\r\n\r\n const swap = () => {\r\n const isReady = () =>\r\n widgetDOMElement.querySelectorAll('[data-loading=true]').length ===\r\n 0;\r\n const [widgetDOMElement] =\r\n this.widget.container.get('widgetDOMElements');\r\n\r\n const watcher = (\r\n _mutations: MutationRecord[],\r\n observer: MutationObserver\r\n ) => {\r\n if (isReady()) {\r\n if (outletOptions.callback) {\r\n outletOptions.callback();\r\n }\r\n observer.disconnect();\r\n }\r\n };\r\n const options = {\r\n attributes: true,\r\n subtree: true,\r\n childList: true,\r\n };\r\n\r\n if (isReady()) {\r\n outletOptions.callback && outletOptions.callback();\r\n }\r\n const observer = new MutationObserver(watcher);\r\n\r\n observer.observe(widgetDOMElement, options);\r\n };\r\n\r\n if (waitWithReplace) {\r\n this.widget.container\r\n .getAsync('dataClient')\r\n .then(({ events }: any) => {\r\n events.subscribe(\r\n 'data-client:fetched',\r\n (_event: any, data: any) => {\r\n if (data.unresolvedQueries === 0) {\r\n swap();\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n const outlet = this.getOrCreateViewOutlet(key, outletOptions);\r\n this.outlets.set(key, outlet);\r\n this.widget.events.dispatch('widget:attached', {}, { bubbles: true });\r\n\r\n if (outletOptions.triggerType === TriggerType.Badge && trigger) {\r\n outletOptions.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n );\r\n outlet?.renderBadge(trigger);\r\n }\r\n\r\n if (outletOptions.triggerType !== TriggerType.Inline) {\r\n outletOptions.triggerDOMElement?.addEventListener(\r\n 'click',\r\n (event: any) => {\r\n event.preventDefault();\r\n this.container\r\n .get('settings')\r\n .then(({ trigger: updatedTrigger }: WidgetSettings) => {\r\n outlet\r\n .render()\r\n .then(() => this.renderState())\r\n .then((renderState) => {\r\n if (\r\n updatedTrigger &&\r\n updatedTrigger.action &&\r\n updatedTrigger.action === 'hide'\r\n ) {\r\n return renderState === WidgetRenderState.open\r\n ? this.hide()\r\n : this.open();\r\n }\r\n return renderState === WidgetRenderState.open\r\n ? this.close()\r\n : this.open();\r\n });\r\n });\r\n }\r\n );\r\n }\r\n\r\n if (this.outlets.size > 1) {\r\n return this.renderState().then((state: WidgetRenderState) => {\r\n // new outlets should have the same state as existing ones\r\n this.triggerStateIfApplicable(state);\r\n });\r\n }\r\n\r\n if (withRenderState) {\r\n if (withRenderState === InitialRenderState.Storage) {\r\n return this.renderState().then((state: WidgetRenderState) => {\r\n if (outletOptions.triggerType === TriggerType.Inline) {\r\n this.triggerStateIfApplicable('open');\r\n return;\r\n }\r\n this.triggerStateIfApplicable(state);\r\n });\r\n }\r\n return this.triggerStateIfApplicable(withRenderState);\r\n }\r\n\r\n return;\r\n });\r\n }\r\n\r\n detach(key?: string) {\r\n if (key) {\r\n if (this.outlets.has(key)) {\r\n const outlet = this.outlets.get(key);\r\n outlet?.dispose();\r\n this.outlets.delete(key);\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`detach(): Could not find View Outlet with key ${key}`);\r\n }\r\n return;\r\n }\r\n this.outlets.forEach((outlet) => {\r\n outlet.dispose();\r\n });\r\n this.outlets.clear();\r\n }\r\n\r\n private triggerStateIfApplicable(input: string) {\r\n switch (input) {\r\n case 'closed':\r\n this.close();\r\n break;\r\n case 'open':\r\n this.open();\r\n break;\r\n case 'hidden':\r\n this.hide();\r\n break;\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n private getOrCreateViewOutlet(\r\n key: string,\r\n options: ViewOutletOptions\r\n ): ViewOutlet {\r\n return (\r\n this.outlets.has(key)\r\n ? this.outlets.get(key)\r\n : new ViewOutlet(this.container, options)\r\n )!;\r\n }\r\n\r\n render(renderData: RenderData = {}) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'widget.render() is deprecated. Use widget.attach() instead.'\r\n );\r\n }\r\n if (renderData.open) {\r\n const options: AttachData = {\r\n ...renderData,\r\n withRenderState: InitialRenderState.Open,\r\n };\r\n return this.attach(options);\r\n }\r\n return this.attach(renderData);\r\n }\r\n\r\n activate(data?: any) {\r\n if (data?.override) {\r\n this.setSettings(() => data.override);\r\n }\r\n // TODO: this is considered a hack, remove apiNotificationPriorityBy\r\n // when there is a better way to get notifications from backend\r\n if (data?.apiNotificationPriorityBy) {\r\n this.container.register(\r\n 'apiNotificationPriorityBy',\r\n data.apiNotificationPriorityBy\r\n );\r\n }\r\n }\r\n\r\n setSettings(\r\n fn: (settings: WidgetSettings) => Promise<Partial<WidgetSettings>>\r\n ): Promise<WidgetSettings> {\r\n return Promise.all([\r\n this.container.get('settings'),\r\n createStorageWriter(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n }\r\n ),\r\n ]).then(([settings, write]) => {\r\n return Promise.resolve(fn(settings)).then((override) => {\r\n return write(override).then(() => {\r\n const updated = { ...settings, ...override };\r\n this.widget.events.dispatch('widget:settings-updated', updated);\r\n return updated;\r\n });\r\n });\r\n });\r\n }\r\n\r\n clearSettings(): Promise<void> {\r\n return createStorageWriter(\r\n this.container,\r\n SETTINGS_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n { medium: StorageMedium.Local }\r\n )\r\n .then((write) => write())\r\n .then(() => this.container.get('settings'))\r\n .then((settings) => {\r\n this.widget.events.dispatch('widget:settings-updated', settings);\r\n });\r\n }\r\n\r\n action({ action, value }: { action: string; value?: any }) {\r\n return this.container\r\n .getAsync('actionResolver')\r\n .then((actionResolver: ActionResolver) => {\r\n actionResolver.action(this.widget.name, action, value);\r\n });\r\n }\r\n\r\n renderState(): Promise<WidgetRenderState> {\r\n // if (onWidgetUrl(this.container)) {\r\n // return Promise.resolve(WidgetRenderState.open);\r\n // }\r\n const readSessionOpen = () =>\r\n readStorage<WidgetRenderState>(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageMedium.Session\r\n ).then((value = WidgetRenderState.closed) => value);\r\n\r\n // const readLocalOpen = () =>\r\n // readStorage<WidgetRenderState>(\r\n // this.container,\r\n // OPEN_STORAGE_KEY,\r\n // StorageMedium.Session\r\n // ).then((value = WidgetRenderState.closed) => value);\r\n\r\n // return this.container.getAsync('router').then((routing: RoutingService) => {\r\n // if (routing.isSticky()) {\r\n // return readLocalOpen().then((localOpen) => {\r\n // return localOpen === WidgetRenderState.open\r\n // ? localOpen\r\n // : readSessionOpen();\r\n // });\r\n // }\r\n // return readSessionOpen();\r\n // });\r\n return readSessionOpen();\r\n }\r\n\r\n hide(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'hide(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n this.outlets.forEach((outlet) => outlet.render());\r\n return this.action({ action: 'hide' }).then(() => {\r\n this.setTriggerState(false);\r\n });\r\n }\r\n\r\n open(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'open(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n this.outlets.forEach((outlet) => outlet.render());\r\n return this.action({ action: 'open' }).then(() => {\r\n this.widget.events.dispatch('tracking:widget-rendered', {});\r\n return this.onOpen();\r\n });\r\n }\r\n\r\n close(): Promise<void> {\r\n if (this.outlets.size < 1) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'close(): No-op as no view outlets are registered. Invoke the attach() command first.'\r\n );\r\n }\r\n return Promise.resolve();\r\n }\r\n return this.action({ action: 'close' }).then(() => this.onClose());\r\n }\r\n\r\n show(): Promise<void> {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n 'show(): Command is deprecated and will be removed in the future. Use open() instead.'\r\n );\r\n }\r\n return this.open();\r\n }\r\n\r\n private onAction(action: string, _value: any) {\r\n switch (action) {\r\n case 'close':\r\n case 'open':\r\n case 'hide':\r\n const newState =\r\n action === 'open'\r\n ? WidgetRenderState.open\r\n : action === 'close'\r\n ? WidgetRenderState.closed\r\n : WidgetRenderState.hidden;\r\n\r\n return this.setRenderState(newState).then(() => {\r\n this.setTriggerState(newState === WidgetRenderState.open);\r\n if (newState !== WidgetRenderState.hidden) {\r\n newState === WidgetRenderState.open\r\n ? this.onOpen()\r\n : this.onClose();\r\n } else {\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n )\r\n );\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n\r\n private setRenderState(newState: string): Promise<void> {\r\n const { invoke, events } = this.container.get('$widget');\r\n return Promise.all([\r\n createStorageWriter(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Session,\r\n }\r\n ),\r\n createStorageWriter(\r\n this.container,\r\n OPEN_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n duration: { minutes: 5 },\r\n }\r\n ),\r\n invoke('renderState'),\r\n ]).then(([writeSessionOpen, writeLocalOpen, previousRenderState]) => {\r\n if (newState === 'unset' || !newState) {\r\n writeLocalOpen();\r\n writeSessionOpen();\r\n } else {\r\n writeSessionOpen(newState);\r\n }\r\n events.dispatch('widget:render-state-changed', {\r\n previous: previousRenderState,\r\n next: newState,\r\n });\r\n });\r\n }\r\n\r\n private onOpen(): Promise<void> {\r\n // return this.container.getAsync('router').then((router: RoutingService) => {\r\n // this.outlets.forEach(\r\n // (outlet) =>\r\n // outlet.options.triggerDOMElement?.setAttribute(\r\n // 'aria-expanded',\r\n // 'true'\r\n // )\r\n // );\r\n // return router.start();\r\n // });\r\n\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'true')\r\n );\r\n return Promise.resolve();\r\n }\r\n\r\n private onClose(): Promise<void> {\r\n const services = this.container.getManyAsync('components') as Promise<{\r\n components: ComponentPlatform;\r\n }>;\r\n\r\n const resetActivateProp = () => {\r\n return this.container\r\n .get('settings')\r\n .then((widgetSettings: WidgetSettings) => {\r\n const { activate } = this.container.get('$settings');\r\n if (widgetSettings.activate !== activate) {\r\n return this.setSettings(() => Promise.resolve({ activate }));\r\n }\r\n return Promise.resolve();\r\n });\r\n };\r\n\r\n return resetActivateProp()\r\n .then(() => {\r\n return services;\r\n })\r\n .then(\r\n ({ components: _components }: { components: ComponentPlatform }) => {\r\n // const visibleNodes = components.nodes.visible;\r\n this.outlets.forEach(\r\n (outlet) =>\r\n outlet.options.triggerDOMElement?.setAttribute(\r\n 'aria-expanded',\r\n 'false'\r\n )\r\n );\r\n\r\n // if (\r\n // visibleNodes.filter(\r\n // (c) =>\r\n // c.attributes.properties.animation &&\r\n // c.attributes.properties.animation !== 'none'\r\n // ).length\r\n // ) {\r\n // return new Promise<RoutingService>((resolve) => {\r\n // setTimeout(() => {\r\n // resolve(router);\r\n // }, 200);\r\n // });\r\n // }\r\n\r\n // return Promise.resolve(router);\r\n }\r\n );\r\n // .then((router: RoutingService) => router.stop());\r\n }\r\n\r\n private setTriggerState(open: boolean) {\r\n this.outlets.forEach((outlet) => {\r\n const {\r\n options: { triggerDOMElement, triggerOptions },\r\n } = outlet;\r\n const { openTooltip, closedTooltip } =\r\n (triggerOptions as BadgeOptions) || {};\r\n if (triggerDOMElement) {\r\n open\r\n ? setActive(triggerDOMElement, openTooltip)\r\n : setInactive(triggerDOMElement, closedTooltip);\r\n }\r\n });\r\n }\r\n\r\n deactivate() {\r\n this.subs.forEach((s) => s());\r\n\r\n const promises: Promise<void>[] = [];\r\n this.outlets.forEach((outlet) => promises.push(outlet.dispose()));\r\n\r\n return readStorage<string>(\r\n this.container,\r\n STICKY_WIDGET_STORAGE_KEY,\r\n StorageMedium.Local\r\n ).then((value) => {\r\n /**\r\n * Remove stored sticky widget from implementation's localStorage if applicable\r\n */\r\n if (value === this.widget.name) {\r\n return createStorageWriter(\r\n this.container,\r\n STICKY_WIDGET_STORAGE_KEY,\r\n StorageCategory.Necessary,\r\n {\r\n medium: StorageMedium.Local,\r\n scope: StorageScope.Implementation,\r\n }\r\n )\r\n .then((write) => write())\r\n .then(() => Promise.all(promises));\r\n }\r\n return Promise.all(promises);\r\n });\r\n }\r\n}\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.callback=t,this.subscribe=null!=e&&e}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){var e;if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=null!==(e=t.subscribe)&&void 0!==e&&e}else this.context=s,this.callback=i,this.subscribe=null!=h&&h;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class i extends Event{constructor(t){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t}}class e extends s{constructor(s,i,e){super(void 0!==i.context?i.initialValue:e),this.onContextRequest=t=>{const s=t.composedPath()[0];t.context===this.context&&s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{const i=s.composedPath()[0];if(s.context===this.context&&i!==this.host){for(const[s,{consumerHost:i}]of this.subscriptions)i.dispatchEvent(new t(this.context,s,!0));s.stopPropagation()}},this.host=s,void 0!==i.context?this.context=i.context:this.context=i,this.attachListeners(),this.host.addController(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new i(this.context))}}export{e as ContextProvider,i as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{decorateProperty as e}from\"@lit/reactive-element/decorators/base.js\";import{ContextConsumer as r}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t({context:t,subscribe:o}){return e({finisher:(e,c)=>{e.addInitializer((e=>{new r(e,{context:t,callback:r=>{e[c]=r},subscribe:o})}))}})}export{t as consume};\n//# sourceMappingURL=consume.js.map\n","import { createContext } from '@lit-labs/context';\r\nimport { ComponentDescriptor } from '@telia-ace/widget-core-flamingo';\r\n\r\nexport const childrenContext = createContext<ComponentDescriptor[]>('children');\r\n","import { createContext } from '@lit-labs/context';\r\nimport { ComponentDescriptor } from '@telia-ace/widget-core-flamingo';\r\n\r\nexport const descriptorContext = createContext<ComponentDescriptor | undefined>(\r\n 'descriptor'\r\n);\r\n","import { Container } from '@webprovisions/platform';\r\nimport { createContext } from '@lit-labs/context';\r\n\r\nexport const containerContext = createContext<Container | undefined>(\r\n 'container'\r\n);\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const contextCtx = createContext<Record<string, any>>('context');\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const layoutCtx = createContext<Record<string, any>>('layout');\r\n","import { createContext } from '@lit-labs/context';\r\n\r\nexport const propertiesCtx = createContext<Record<string, any>>('properties');\r\n","import {\r\n ReactiveController,\r\n ReactiveControllerHost,\r\n ReactiveElement,\r\n} from 'lit';\r\nimport { Container } from '@webprovisions/platform';\r\nimport {\r\n ComponentDescriptor,\r\n ComponentPlatform,\r\n ComponentQuery,\r\n} from '@telia-ace/widget-core-flamingo';\r\nimport { uuid } from '@telia-ace/widget-utilities';\r\n\r\nexport class ActionsController implements ReactiveController {\r\n host: ReactiveControllerHost;\r\n\r\n private _container?: Container;\r\n\r\n private _descriptor?: ComponentDescriptor;\r\n\r\n constructor(host: ReactiveElement) {\r\n (this.host = host).addController(this);\r\n }\r\n\r\n hostConnected() {}\r\n hostDisconnected() {}\r\n\r\n setDescriptor(descriptor: ComponentDescriptor) {\r\n this._descriptor = descriptor;\r\n }\r\n\r\n setContainer(container: Container) {\r\n this._container = container;\r\n }\r\n\r\n async dispatch(key: string, value: Record<string, any> | string) {\r\n if (!this._container || !this._descriptor) {\r\n return;\r\n }\r\n\r\n const componentPlatform = await ComponentPlatform.getInstance(\r\n this._container\r\n );\r\n\r\n const query = new ComponentQuery(componentPlatform).withId(\r\n this._descriptor.id\r\n );\r\n const actions = componentPlatform.actions(\r\n query,\r\n this._descriptor.type || uuid()\r\n );\r\n\r\n await actions.dispatch(key, value);\r\n }\r\n}\r\n","import { ComponentNodeController } from '@telia-ace/widget-core-flamingo';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\ntype DataResource = {\r\n query: (\r\n input: Record<string, any>,\r\n providerSettings: Record<string, any>\r\n ) => Promise<any>;\r\n};\r\n\r\ntype DataProviderSettings = Record<string, any>;\r\n\r\nexport const getProvider = async (\r\n component: ComponentNodeController,\r\n container: Container\r\n) => {\r\n const providerProperty: string | [string, any] | undefined =\r\n component.properties().provider;\r\n let providerSettings = {};\r\n\r\n let providerKey: string = '';\r\n if (Array.isArray(providerProperty)) {\r\n providerKey = providerProperty[0];\r\n providerSettings = providerProperty[1];\r\n } else {\r\n providerKey = providerProperty || '';\r\n }\r\n\r\n const provider: DataProvider | undefined =\r\n await container.getAsync(providerKey);\r\n\r\n if (!provider) {\r\n throw new Error('No provider defined in ListComponent');\r\n }\r\n\r\n provider.applyComponentNodeSettings(component.node.id, providerSettings);\r\n\r\n return { provider, settings: providerSettings };\r\n};\r\n\r\nexport const createDataProvider = async (\r\n component: ComponentNodeController,\r\n container: Container\r\n) => {\r\n const { provider, settings = {} } = await getProvider(component, container);\r\n\r\n return {\r\n addResource: (resourceKey: string, resource: DataResource) => {\r\n return provider.addResource(resourceKey, resource);\r\n },\r\n getData: (resourceKey: string, input: Record<string, any>) => {\r\n return provider.getData(resourceKey, input, settings);\r\n },\r\n };\r\n};\r\n\r\nexport class DataProvider {\r\n private resources = new Map<string, DataResource>();\r\n private nodeConfiguration = new Map<string, DataProviderSettings>();\r\n\r\n constructor(public container: Container) {}\r\n\r\n async getData(\r\n resourceKey: string,\r\n input: Record<string, any>,\r\n providerSettings: Record<string, any>\r\n ) {\r\n const entityProvider = this.resources.get(resourceKey);\r\n\r\n if (!entityProvider) {\r\n throw new Error(`Unable to get EntityProvider for \"${resourceKey}\"`);\r\n }\r\n\r\n const response = await entityProvider.query(input, providerSettings);\r\n\r\n return response;\r\n }\r\n\r\n addResource(resourceKey: string, resource: DataResource) {\r\n this.resources.set(resourceKey, resource);\r\n }\r\n\r\n applyComponentNodeSettings(nodeId: string, value: DataProviderSettings) {\r\n this.nodeConfiguration.set(nodeId, value);\r\n }\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport { DataProvider } from '../data-provider';\r\n\r\ntype RawGuide = any;\r\n\r\nconst formatGuideToItem = (rawGuide: Record<string, RawGuide>) => {\r\n return {\r\n title: rawGuide.Title,\r\n id: rawGuide.Id.toString(),\r\n };\r\n};\r\n\r\nclass GuideProvider extends DataProvider {\r\n constructor(container: Container) {\r\n super(container);\r\n\r\n this.addResource('item', {\r\n query: async (input: Record<string, any>, providerSettings) => {\r\n const itemId = input.itemId;\r\n const client = '78aacc09-ae6f-5485-5ca3-9dacebb95825';\r\n const funnel = container.get('$widget').name;\r\n const projection = providerSettings.projection || '';\r\n\r\n const response = await fetch(\r\n `${projection}/guides/${itemId}?client=${client}&funnel=${funnel}&site=%2F%2Fdemo.humany.cc%2Fadmin%2Finterfaces&phrase=&connectionId=&p.LastGuideId=2857`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return data ? formatGuideToItem(data) : null;\r\n },\r\n });\r\n\r\n this.addResource('items', {\r\n query: async (_input, providerSettings) => {\r\n const client = '';\r\n const funnel = container.get('$widget').name;\r\n const projection = providerSettings.projection || '';\r\n const site = '';\r\n const skip = '0';\r\n const take = '10';\r\n\r\n const response = await fetch(\r\n `${projection}/guides?client=${client}&funnel=${funnel}&site=${site}&phrase=&skip=${skip}&take=${take}&sorting.type=popularity&sorting.direction=descending`\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return {\r\n items: (data.Matches || []).map((item: RawGuide) => {\r\n return formatGuideToItem(item);\r\n }),\r\n totalItems: data?.TotalMatches || 0,\r\n };\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport const GuideProviderPlugin = async (container: Container) => {\r\n container.registerAsync('guideProvider', () => {\r\n return new GuideProvider(container);\r\n });\r\n};\r\n","import {\r\n ComponentResolver,\r\n extendComponent,\r\n ExtendComponentHandler,\r\n ExtendComponentOptions,\r\n} from '@telia-ace/widget-core-flamingo';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\n/**\r\n * Registers a Lit component on the component platform.\r\n * @param container Container to register the component on.\r\n * @param type Type name to resolve the component from configuration.\r\n * @param component Promise resolving to the Lit component for rendering.\r\n * @param fn Handler for controlling the component.\r\n */\r\nconst createLitComponent = (\r\n container: Container,\r\n type: string,\r\n component: any, // e.g. import('./component.ts)\r\n fn?: ExtendComponentHandler,\r\n options?: ExtendComponentOptions\r\n) => {\r\n return container\r\n .getAsync('componentResolver')\r\n .then((componentResolver: ComponentResolver) => {\r\n componentResolver.registerComponent(type, component);\r\n return extendComponent(container, type, fn || (() => {}), type, options);\r\n });\r\n};\r\n\r\nexport default createLitComponent;\r\n","const mapValue = (value: any, cssVar: string, el: HTMLElement) => {\r\n if (value) {\r\n el.style.setProperty(cssVar, value);\r\n }\r\n};\r\n\r\nexport const mapBranding = (context: Record<string, any>, el: HTMLElement) => {\r\n mapValue(context.colors?.primary, '--primary-color', el);\r\n mapValue(context.colors?.secondary, '--secondary-color', el);\r\n mapValue(context.colors?.text, '--text-color', el);\r\n mapValue(context.colors?.link, '--link-color', el);\r\n mapValue(context.colors?.gray, '--gray-color', el);\r\n mapValue(context.colors?.grayDark, '--gray-dark-color', el);\r\n\r\n mapValue(context.spacing?.xs, '--spacing-xs', el);\r\n mapValue(context.spacing?.sm, '--spacing-sm', el);\r\n mapValue(context.spacing?.md, '--spacing-md', el);\r\n mapValue(context.spacing?.lg, '--spacing-lg', el);\r\n mapValue(context.spacing?.xl, '--spacing-xl', el);\r\n\r\n mapValue(context.boxShadow, '--box-shadow', el);\r\n mapValue(context.borderRadius, '--border-radius', el);\r\n mapValue(context.borderRadiusSm, '--border-radius-sm', el);\r\n mapValue(context.fontFamily, '--font-family', el);\r\n};\r\n","const filterCssProps = (props: Record<string, any>) => {\r\n const cssProps: { [key: string]: any } = {};\r\n\r\n Object.keys(props).forEach((key) => {\r\n if (key.indexOf('css-') > -1) {\r\n cssProps[key] = props[key];\r\n }\r\n });\r\n\r\n return cssProps;\r\n};\r\n\r\nexport const appendStyleFromProperties = (\r\n elem: HTMLElement,\r\n p: Record<string, any>\r\n) => {\r\n const props = filterCssProps(p);\r\n Object.entries(props).forEach(([key, value]) => {\r\n elem.style.setProperty(key.replace('css-', ''), value);\r\n });\r\n};\r\n\r\nexport default filterCssProps;\r\n","import { LitElement, css } from 'lit';\r\nimport { childrenContext } from '../context/children.context';\r\nimport { propertiesCtx } from '../context/properties.context';\r\nimport { contextCtx } from '../context/context.context';\r\nimport { layoutCtx } from '../context/layout.context';\r\nimport { ContextProvider, consume } from '@lit-labs/context';\r\nimport {\r\n Container,\r\n EventSubscriptionCancellation,\r\n} from '@webprovisions/platform';\r\nimport { containerContext } from '../context/container.context';\r\nimport { property, state } from 'lit/decorators.js';\r\nimport {\r\n ComponentDescriptor,\r\n ComponentPlatform,\r\n ComponentResolver,\r\n asDescriptor,\r\n} from '@telia-ace/widget-core-flamingo';\r\nimport { descriptorContext } from '../context/component-node.context';\r\nimport { ActionsController } from '../controllers/actions-controller';\r\nimport { mapBranding } from '../ui/branding';\r\nimport { appendStyleFromProperties } from '../ui/get-css-props';\r\n\r\ntype Constructor<T = {}> = new (...args: any[]) => T;\r\n\r\nexport declare class WidgetComponentInterface {\r\n entry: string;\r\n descriptor?: ComponentDescriptor;\r\n component?: any;\r\n layout: Record<string, any>;\r\n context: Record<string, any>;\r\n properties: Record<string, any>;\r\n container?: Container;\r\n actions: ActionsController;\r\n _contextProvider: ContextProvider<typeof contextCtx>;\r\n _propertiesProvider: ContextProvider<typeof propertiesCtx>;\r\n _childrenProvider: ContextProvider<typeof childrenContext>;\r\n}\r\n\r\nexport const WidgetComponent = <T extends Constructor<LitElement>>(\r\n superClass: T\r\n) => {\r\n class WidgetComponentClass extends superClass {\r\n static styles = [\r\n (superClass as unknown as typeof LitElement).styles ?? [],\r\n css`\r\n :host {\r\n font-family: var(--font-family);\r\n grid-column: span var(--width);\r\n max-width: 100%;\r\n overflow: hidden;\r\n box-sizing: border-box;\r\n display: block;\r\n }\r\n * {\r\n box-sizing: border-box;\r\n }\r\n `,\r\n ];\r\n\r\n @consume({ context: containerContext })\r\n @property({ attribute: false })\r\n public container?: Container;\r\n\r\n @property()\r\n entry: string = '';\r\n\r\n private _descriptorProvider = new ContextProvider(\r\n this,\r\n descriptorContext,\r\n undefined\r\n );\r\n _childrenProvider = new ContextProvider(this, childrenContext, []);\r\n _propertiesProvider = new ContextProvider(this, propertiesCtx, {});\r\n _contextProvider = new ContextProvider(this, contextCtx, {});\r\n private _layoutProvider = new ContextProvider(this, layoutCtx, {});\r\n\r\n private _propertyChangeListener?: EventSubscriptionCancellation;\r\n private _contextChangeListener?: EventSubscriptionCancellation;\r\n private _layoutChangeListener?: EventSubscriptionCancellation;\r\n private _unmountNode?: any;\r\n\r\n actions = new ActionsController(this);\r\n\r\n @state()\r\n descriptor?: ComponentDescriptor;\r\n\r\n @state()\r\n component?: any;\r\n\r\n @state()\r\n context: Record<string, any> = {};\r\n\r\n @state()\r\n layout: Record<string, any> = {};\r\n\r\n @state()\r\n properties: Record<string, any> = {};\r\n\r\n override connectedCallback() {\r\n super.connectedCallback();\r\n\r\n if (this.container) {\r\n this.actions.setContainer(this.container);\r\n ComponentPlatform.getInstance(this.container).then(\r\n async (componentPlatform) => {\r\n const componentNode = componentPlatform.nodes.get(this.entry);\r\n if (componentNode) {\r\n this._propertyChangeListener = componentPlatform.events.subscribe(\r\n 'components:properties-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setProperties(data.node.attributes.properties);\r\n }\r\n }\r\n );\r\n this._contextChangeListener = componentPlatform.events.subscribe(\r\n 'components:context-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setContext(data.node.attributes.context);\r\n }\r\n }\r\n );\r\n this._layoutChangeListener = componentPlatform.events.subscribe(\r\n 'components:layout-changed',\r\n (_event, data) => {\r\n if (\r\n componentNode.id === data.node.id /*&& isMounted.current*/\r\n ) {\r\n this._setLayout(data.node.attributes.layout);\r\n }\r\n }\r\n );\r\n\r\n const branch = 'default'; // TODO:\r\n\r\n this._unmountNode = componentNode.mount(this.container!);\r\n\r\n this._setDescriptor(asDescriptor(componentNode, branch));\r\n this._setProperties(componentNode.attributes.properties);\r\n this._setContext(componentNode.attributes.context);\r\n this._setLayout(this.layout);\r\n\r\n const children = componentNode\r\n .getChildren(branch)\r\n .map((child) => asDescriptor(child));\r\n\r\n this._childrenProvider.setValue(children);\r\n\r\n const resolver: ComponentResolver =\r\n await this.container!.getAsync('componentResolver');\r\n\r\n const componentResolver = resolver.getComponent(\r\n this.descriptor?.type || ''\r\n );\r\n if (componentResolver.then) {\r\n componentResolver.then((componentModule: any) => {\r\n this.component = componentModule.default;\r\n });\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n if (this._propertyChangeListener) {\r\n this._propertyChangeListener();\r\n }\r\n if (this._contextChangeListener) {\r\n this._contextChangeListener();\r\n }\r\n if (this._layoutChangeListener) {\r\n this._layoutChangeListener();\r\n }\r\n\r\n if (this._unmountNode) {\r\n this._unmountNode();\r\n }\r\n }\r\n\r\n override updated() {\r\n if (this.container) {\r\n this.actions.setContainer(this.container);\r\n }\r\n mapBranding(this.context, (this.renderRoot as any).host);\r\n\r\n (this.renderRoot as any).host.style.setProperty(\r\n '--width',\r\n this.layout.size === 'full'\r\n ? 'var(--columns, 1)'\r\n : `min(${this.layout.size || 'var(--columns)'}, var(--columns))`\r\n );\r\n\r\n appendStyleFromProperties((this.renderRoot as any).host, this.properties);\r\n }\r\n\r\n private _setProperties(value: Record<string, any>) {\r\n this._propertiesProvider.setValue(value);\r\n this.properties = value;\r\n }\r\n private _setContext(value: Record<string, any>) {\r\n this._contextProvider.setValue(value);\r\n this.context = value;\r\n }\r\n private _setLayout(value: Record<string, any>) {\r\n this._layoutProvider.setValue(value);\r\n this.layout = value;\r\n }\r\n private _setDescriptor(value: ComponentDescriptor) {\r\n this.descriptor = value;\r\n this._descriptorProvider.setValue(value);\r\n this.actions.setDescriptor(value);\r\n }\r\n }\r\n // Cast return type to your mixin's interface intersected with the superClass type\r\n return WidgetComponentClass as Constructor<WidgetComponentInterface> & T;\r\n};\r\n"],"names":["Vt","jt","qt","ct","Ft","Ht","at","n","I","ht","He","s","j","$t","D","E","Yt","c","ut","Ut","t","e","i","r","o","u","Ct","a","l","p","d","H","g","S","$","fe","vt","ve","_t","Ae","Z$3","Ne","Mt","tt","Z","_e","C","N","T","R","P","k","et","xt","zt","st","B","Re","De","Ie","Le","Me","Q","w","ze","Se","ot","nt","it","rt","y","f","V","Te","h","Ve","Y","Ue","Ge","Ke","Je","qe","_","Z$2","b","m","lt","q","G","W","x","re","se","X","ne","oe","z","L","J","M","O","K","ee","v","te","k$2","de","ie","A","ae","F","ce","U","ft","At","triggerTabHandler","triggerDOMElement","toggleTabbing","element","tabbing","handleKeydown","handleClick","createTriggerElement","options","widgetName","label","ariaLabel","tooltip","setInactive","elements","title","setLoading","setActive","o$5","u$1","__async","__spreadProps","__spreadValues","i$1","TriggerComponent","LitElement","__superGet","symbol","importIcon","iconName","type","content","icon","html","nothing","classMap","css","__decorateClass","property","state","TriggerType","determineProvidedElements","widgetDOMElement","determineTriggerType","triggerDefinition","prepareDOMElements","name","providedWidgetElement","providedTriggerElement","waitWithReplace","_a","_b","providedElements","triggerType","cachedOriginals","output","triggerElement","widgetElement","trigger","MODALS_STORAGE_KEY","ViewOutlet","container","widget","widgetDOMElements","module","notifyDataLoaded","widgets","readStorage","StorageMedium","modals","modal","closedTooltip","openTooltip","triggerOptions","removeTriggerListeners","_c","_d","unsubscribe","STORAGE_KEY","convertSettingsToAttributes","settings","attributes","LocalStorageChangesetProvider","storageWriter","createStorageWriter","StorageCategory","key","target","lock","bag","keys","items","existingIndex","indexToRemove","platform","item","rules","ComponentQuery","createPlatform","localStorage","providers","ComponentPlatform","destructComponentModel","createComponentModel","_event","data","WidgetState","createStorageService","_container","StorageProvider","createActionResolver","index$1","ActionResolver","createComponentResolver","ComponentResolver","createComponentPlatform","SETTINGS_STORAGE_KEY","OPEN_STORAGE_KEY","STICKY_WIDGET_STORAGE_KEY","Widget","WidgetType","activationData","activate","supportBootstrapping","promises","cspSettings","actionResolver","components","_settings","_origin","action","value","routeName","viewNode","attachData","_0","uuid","withRenderState","outletOptions","swap","isReady","watcher","_mutations","observer","events","outlet","event","updatedTrigger","renderState","WidgetRenderState","input","renderData","fn","write","override","updated","_value","newState","invoke","writeSessionOpen","writeLocalOpen","previousRenderState","services","widgetSettings","_components","open","StorageScope","s$1","childrenContext","descriptorContext","containerContext","contextCtx","layoutCtx","propertiesCtx","ActionsController","host","descriptor","componentPlatform","query","getProvider","component","providerProperty","providerSettings","providerKey","provider","createDataProvider","resourceKey","resource","DataProvider","entityProvider","nodeId","formatGuideToItem","rawGuide","GuideProvider","itemId","client","funnel","projection","_input","GuideProviderPlugin","createLitComponent","componentResolver","extendComponent","mapValue","cssVar","el","mapBranding","context","_f","_g","_h","_i","_j","_k","filterCssProps","props","cssProps","appendStyleFromProperties","elem","WidgetComponent","superClass","WidgetComponentClass","ContextProvider","componentNode","branch","asDescriptor","children","child","componentModule","consume"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAIA,KAAK,OAAO,gBAAgBC,KAAK,OAAO,kBACxCC,KAAK,OAAO,2BACZC,KAAK,OAAO,uBACZC,KAAK,OAAO,UAAU,gBAAgBC,KAAK,OAAO,UAAU,sBAC5DC,KAAK,CAACC,GAAG,GAAG,MAAM,KAAKA,IAAIP,GAAGO,GAAG,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAO,EAAC,CAAE,IAAIA,EAAE,CAAC,IAAI,GAAGC,KAAI,CAACD,GAAG,MAAM;AAC9H,WAAS,KAAK,MAAM,IAAI,CAAA;AACtB,IAAAH,GAAG,KAAK,GAAG,CAAC,KAAKE,GAAGC,GAAG,GAAG,EAAE,CAAC,CAAC;AAChC,MAAIJ;AACF,aAAS,KAAKA,GAAG,CAAC;AAChB,MAAAE,GAAG,KAAK,GAAG,CAAC,KAAKC,GAAGC,GAAG,GAAG,EAAE,CAAC,CAAC;AAClC,SAAOA;AACT,GAAGE,KAAK,CAACF,GAAG,MAAMN,GAAGM,GAAGL,GAAG,CAAC,CAAC;AAC7B,MAAMQ,GAAG;AAAA,EACP,YAAY,GAAG;AACb,UAAM,EAAE,QAAQ,EAAC,IAAK,EAAE,IAAI,SAAS;AACrC,SAAK,SAAS,EAAE,YAAY,IAAI;AAAA,EACjC;AAAA,EACD,OAAO,GAAG,GAAGC,GAAG;AACd,SAAK,OAAO;AAAA,MACV;AAAA,MACA,EAAE,QAAQ,GAAG,OAAOA,GAAG,QAAQ,EAAG;AAAA,MAClC,EAAE,SAAS,GAAI;AAAA,IACrB;AAAA,EACG;AAAA,EACD,UAAU,GAAG,GAAG;AACd,WAAO,KAAK,OAAO;AAAA,MACjB;AAAA,MACA,CAACA,GAAG,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,EAAC,MAAO,MAAM,KAAK,EAAE,GAAG,GAAG,CAAC;AAAA,IACrE;AAAA,EACG;AACH;AACK,MAACC,KAAI,CAACL,GAAG,GAAG,MAAMI,MAAM;AAC3B,QAAM,IAAI,IAAIJ,EAAE,IAAI,cAAc,EAAE,QAAQ,eAAe,KAAK,CAAC;AACjE,UAAQ,GAAC;AAAA,IACP,KAAK;AACH,cAAQ,KAAK,GAAG,GAAGI,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,GAAG,GAAGA,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,MAAM,GAAG,GAAGA,CAAC;AACrB;AAAA,EACH;AACH,GAAGE,KAAK,CAACN,MAAM;AACb,QAAM,IAAIA,EAAE,aAAaA;AACzB,SAAO;AAAA,IACL,MAAM,CAAC,MAAMI,MAAMC,GAAE,GAAG,QAAQ,GAAG,GAAGD,CAAC;AAAA,IACvC,MAAM,CAAC,MAAMA,MAAMC,GAAE,GAAG,WAAW,GAAG,GAAGD,CAAC;AAAA,IAC1C,OAAO,CAAC,MAAMA,MAAMC,GAAE,GAAG,SAAS,GAAG,GAAGD,CAAC;AAAA,EAC7C;AACA;AAqBA,IAAIG,KAAqB,kBAACP,OAAOA,EAAE,iBAAiB,kBAAkBA,EAAE,SAAS,UAAUA,IAAIO,MAAK,CAAE,CAAA,GAAGC,IAAqB,kBAACR,OAAOA,EAAE,MAAM,OAAOA,EAAE,OAAO,QAAQA,IAAIQ,KAAK,CAAE,CAAA;AACjL,MAAMC,KAAK,CAACT,GAAG,GAAG,GAAGI,MAAM;AACzB,MAAI;AACF,UAAM,IAAI,IAAI,EAAE,GAAGA,CAAC;AACpB,WAAO;AAAA,MACL,MAAMJ;AAAA,MACN,QAAQ,CAAC,GAAG,MAAM;AAChB,YAAIU;AACJ,eAAO,EAAE,CAAC,MAAMA,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,QAAQ,QAAQA,CAAC;AAAA,MACxD;AAAA,MACD,aAAa,MAAM;AAAA,IACzB;AAAA,EACG,SAAQ,GAAG;AACV,QAAI,EAAE,WAAW,EAAE,QAAQ,QAAQ,sBAAsB,KAAK;AAC5D,aAAO;AAAA,QACL,MAAMV;AAAA,QACN,QAAQ,CAAC,MAAM;AACb,cAAI;AACJ,iBAAO,MAAM,iBAAiB,IAAI,EAAE,GAAGI,CAAC,IAAI,QAAQ,QAAQ,CAAC;AAAA,QAC9D;AAAA,QACD,aAAa,MAAM;AAAA,MAC3B;AACI,UAAM;AAAA,EACP;AACH;AACA,SAASO,GAAGX,GAAG,GAAG;AAChB,SAAO,OAAOA,KAAK,cAAc,IAAIA;AACvC;AACA,IAAIY,KAAK,MAAM;AAAA,EACb,YAAYC,IAAI,IAAI;AAClB,SAAK,OAAOA;AAAA,EACb;AAAA,EACD,cAAcA,GAAGC,GAAGV,GAAG;AACrB,QAAIW;AACJ,WAAOD,KAAK,aAAaC,IAAI;AAAA,MAC3B,OAAOR,GAAE;AAAA,MACT,OAAOC,EAAE;AAAA,MACT,aAAa;AAAA,MACb,iBAAiBM;AAAA,IAClB,IAAGC,IAAI;AAAA,MACN,OAAOJ,GAAGG,EAAE,OAAOP,GAAE,MAAM;AAAA,MAC3B,OAAOI,GAAGG,EAAE,OAAON,EAAE,IAAI;AAAA,MACzB,aAAaM,EAAE;AAAA,MACf,iBAAiBV;AAAA,IACvB;AACI,QAAIY,IAAI,KAAK;AACb,UAAMC,IAAIJ,EAAE,MAAM,GAAG;AACrB,WAAOI,EAAE,QAAQ,CAACP,GAAGQ,MAAM;AACzB,MAAAA,MAAMD,EAAE,SAAS,IAAID,EAAEN,CAAC,MAAMM,EAAEN,CAAC,IAAI,MAAMK,KAAKC,IAAI,KAAK,KAAKN,CAAC,IAAI,KAAK,KAAKA,CAAC,KAAK;IACpF,CAAA,GAAG;AAAA,EACL;AAAA,EACD,MAAM;AACJ,WAAO,KAAK;AAAA,EACb;AACH;AACA,MAAMS,KAAK,CAACnB,MAAM;AAChB,QAAM,IAAI,IAAIY,GAAG,CAAA,CAAE;AACnB,SAAOZ,EAAE,CAAC,GAAG,EAAE,IAAG;AACpB;AACAmB,GAAG,CAACnB,MAAM;AACR,EAAAA,EAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAOO,GAAE,gBAAgB,OAAOC,EAAE,IAAK;AAAA,IACzC,CAAC,MAAM,CAAC,GAAGJ,MAAM;AACf,QAAE,UAAU,IAAI,QAAQ,EAAE,CAAC,IAAIA;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOI,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,SAAS,CAAC;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,KAAK,aAAa,CAAC,IAAI,EAAG;AAAA,IACrC,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,EAAE,SAAS,GAAI;AAAA,MAChB,GAAE,EAAE,UAAU,SAAS,aAAa,CAAC;AAAA,IACvC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,GAAGJ,GAAG,MAAM;AAClB,YAAM,EAAE,WAAW,EAAG,IAAG;AACzB,UAAI,IAAI,MAAMM,IAAI,GAAGQ,IAAId;AACzB,aAAO,KAAK,aAAa,IAAI,GAAGM,IAAIN,GAAGc,IAAI;AAC3C,YAAM,IAAI,CAACE,MAAM;AACf,cAAM,EAAE,yBAAyBC,EAAG,IAAG,EAAE,UAAU,IAAI,qBAAqB,GAAGC,IAAID,IAAIA;AAAA,UACrFH,KAAK,CAAE;AAAA,UACP;AAAA,UACA,EAAE;AAAA,UACFR;AAAA,QACD,IAAGN;AACJ,YAAI;AACF,gBAAMmB,IAAId;AAAA,YACR;AAAA,YACAC;AAAA,YACA;AAAA,YACAY;AAAA,UACZ;AACU,YAAE,IAAI,UAAU,EAAE,KAAKC,CAAC,GAAGH,KAAKG,EAAE,OAAO,cAAc,IAAI;AAAA,QAC5D,SAAQA,GAAG;AACV,UAAAjB,GAAG,CAAC,EAAE,KAAK,kCAAkCiB,CAAC;AAAA,QAC/C;AAAA,MACT;AACM,QAAE,UAAU,IAAI,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,cAAc,2BAA2B,MAAM,EAAE,EAAE,CAAC;AAAA,IACrG;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGnB,MAAM;AACf,QAAE,UAAU,SAAS,GAAGA,CAAC;AAAA,IAC1B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,cAAc,GAAGA,CAAC;AAAA,IAC/B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,gBAAgB,GAAGA,CAAC;AAAA,IACjC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,MAAM,GAAGA,CAAC;AAAA,IACvB;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAE;AAAA,IACF,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,OAAO,CAAC;AAAA,IAC9B;AAAA,EACL;AACA,CAAC;AA6FUe,GAAG,CAACnB,MAAM;AACnB,EAAAA,EAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAOO,GAAE,gBAAgB,OAAOC,EAAE,IAAK;AAAA,IACzC,CAAC,MAAM,CAAC,MAAM;AACZ,YAAM,EAAE,WAAWJ,EAAG,IAAG,GAAG,IAAIA,EAAE;AAClC,MAAAA,EAAE,IAAI,eAAe,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,cAAc,mBAAmB,MAAM;AACpF,UAAE,CAAC;AAAA,MACX,CAAO;AAAA,IACF;AAAA,EACL;AACA,CAAC;AAII,MAACoB,KAAI,CAACxB,GAAG,GAAG,MAAMI,MAAM;AAC3B,QAAM,IAAI,IAAIJ,EAAE,IAAI,cAAc,EAAE,QAAQ,eAAe,KAAK,CAAC;AACjE,UAAQ,GAAC;AAAA,IACP,KAAK;AACH,cAAQ,KAAK,GAAG,GAAGI,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,KAAK,GAAG,GAAGA,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,MAAM,GAAG,GAAGA,CAAC;AACrB;AAAA,EACH;AACH,GAAGqB,KAAI,CAACzB,MAAM;AACZ,QAAM,IAAIA,EAAE,aAAaA;AACzB,SAAO;AAAA,IACL,MAAM,CAAC,MAAMI,MAAMoB,GAAE,GAAG,QAAQ,GAAG,GAAGpB,CAAC;AAAA,IACvC,MAAM,CAAC,MAAMA,MAAMoB,GAAE,GAAG,WAAW,GAAG,GAAGpB,CAAC;AAAA,IAC1C,OAAO,CAAC,MAAMA,MAAMoB,GAAE,GAAG,SAAS,GAAG,GAAGpB,CAAC;AAAA,EAC7C;AACA;AAmZA,IAAIsB,KAAqB,kBAAC1B,OAAOA,EAAE,iBAAiB,kBAAkBA,EAAE,SAAS,UAAUA,IAAI0B,MAAK,CAAE,CAAA,GAAGC,IAAqB,kBAAC3B,OAAOA,EAAE,MAAM,OAAOA,EAAE,OAAO,QAAQA,IAAI2B,KAAK,CAAE,CAAA;AAiEjL,MAAMC,KAAK,CAAC5B,GAAG,GAAG,GAAGI,MAAM;AACzB,MAAI;AACF,UAAM,IAAI,IAAI,EAAE,GAAGA,CAAC;AACpB,WAAO;AAAA,MACL,MAAMJ;AAAA,MACN,QAAQ,CAAC,GAAG,MAAM;AAChB,YAAIU;AACJ,eAAO,EAAE,CAAC,MAAMA,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,QAAQ,QAAQA,CAAC;AAAA,MACxD;AAAA,MACD,aAAa,MAAM;AAAA,IACzB;AAAA,EACG,SAAQ,GAAG;AACV,QAAI,EAAE,WAAW,EAAE,QAAQ,QAAQ,sBAAsB,KAAK;AAC5D,aAAO;AAAA,QACL,MAAMV;AAAA,QACN,QAAQ,CAAC,MAAM;AACb,cAAI;AACJ,iBAAO,MAAM,iBAAiB,IAAI,EAAE,GAAGI,CAAC,IAAI,QAAQ,QAAQ,CAAC;AAAA,QAC9D;AAAA,QACD,aAAa,MAAM;AAAA,MAC3B;AACI,UAAM;AAAA,EACP;AACH;AACA,SAASyB,GAAG7B,GAAG,GAAG;AAChB,SAAO,OAAOA,KAAK,cAAc,IAAIA;AACvC;AACA,MAAM8B,GAAG;AAAA,EACP,YAAY,IAAI,IAAI;AAClB,SAAK,OAAO;AAAA,EACb;AAAA,EACD,cAAc,GAAG,GAAG1B,GAAG;AACrB,QAAI;AACJ,WAAO,KAAK,aAAa,IAAI;AAAA,MAC3B,OAAOsB,GAAE;AAAA,MACT,OAAOC,EAAE;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IAClB,IAAG,IAAI;AAAA,MACN,OAAOE,GAAG,EAAE,OAAOH,GAAE,MAAM;AAAA,MAC3B,OAAOG,GAAG,EAAE,OAAOF,EAAE,IAAI;AAAA,MACzB,aAAa,EAAE;AAAA,MACf,iBAAiBvB;AAAA,IACvB;AACI,QAAI,IAAI,KAAK;AACb,UAAM,IAAI,EAAE,MAAM,GAAG;AACrB,WAAO,EAAE,QAAQ,CAACM,GAAGQ,MAAM;AACzB,MAAAA,MAAM,EAAE,SAAS,IAAI,EAAER,CAAC,MAAM,EAAEA,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,KAAKA,CAAC,IAAI,KAAK,KAAKA,CAAC,KAAK;IACpF,CAAA,GAAG;AAAA,EACL;AAAA,EACD,MAAM;AACJ,WAAO,KAAK;AAAA,EACb;AACH;AACK,MAACqB,KAAK,CAAC/B,MAAM;AAChB,QAAM,IAAI,IAAI8B,GAAG,CAAA,CAAE;AACnB,SAAO9B,EAAE,CAAC,GAAG,EAAE,IAAG;AACpB;AAAQ+B,GAAG,CAAC/B,MAAM;AAChB,EAAAA,EAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAO0B,GAAE,gBAAgB,OAAOC,EAAE,IAAK;AAAA,IACzC,CAAC,MAAM,CAAC,GAAGvB,MAAM;AACf,QAAE,UAAU,IAAI,QAAQ,EAAE,CAAC,IAAIA;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOuB,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,SAAS,CAAC;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,KAAK,aAAa,CAAC,IAAI,EAAG;AAAA,IACrC,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,EAAE,SAAS,GAAI;AAAA,MAChB,GAAE,EAAE,UAAU,SAAS,aAAa,CAAC;AAAA,IACvC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,GAAGvB,GAAG,MAAM;AAClB,YAAM,EAAE,WAAW,EAAG,IAAG;AACzB,UAAI,IAAI,MAAMM,IAAI,GAAGQ,IAAId;AACzB,aAAO,KAAK,aAAa,IAAI,GAAGM,IAAIN,GAAGc,IAAI;AAC3C,YAAM,IAAI,CAACE,MAAM;AACf,cAAM,EAAE,yBAAyBC,EAAG,IAAG,EAAE,UAAU,IAAI,qBAAqB,GAAGC,IAAID,IAAIA;AAAA,UACrFH,KAAK,CAAE;AAAA,UACP;AAAA,UACA,EAAE;AAAA,UACFR;AAAA,QACD,IAAGN;AACJ,YAAI;AACF,gBAAMmB,IAAIK;AAAA,YACR;AAAA,YACAlB;AAAA,YACA;AAAA,YACAY;AAAA,UACZ;AACU,YAAE,IAAI,UAAU,EAAE,KAAKC,CAAC,GAAGH,KAAKG,EAAE,OAAO,cAAc,IAAI;AAAA,QAC5D,SAAQA,GAAG;AACVE,UAAAA,GAAE,CAAC,EAAE,KAAK,kCAAkCF,CAAC;AAAA,QAC9C;AAAA,MACT;AACM,QAAE,UAAU,IAAI,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,cAAc,2BAA2B,MAAM,EAAE,EAAE,CAAC;AAAA,IACrG;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGnB,MAAM;AACf,QAAE,UAAU,SAAS,GAAGA,CAAC;AAAA,IAC1B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,cAAc,GAAGA,CAAC;AAAA,IAC/B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,gBAAgB,GAAGA,CAAC;AAAA,IACjC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,MAAM,GAAGA,CAAC;AAAA,IACvB;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAE;AAAA,IACF,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,OAAO,CAAC;AAAA,IAC9B;AAAA,EACL;AACA,CAAC;AAoRI,MAcF4B,KAAK,CAAChC,MAAM;AACb,QAAM,IAAI,CAAA;AACV,SAAO;AAAA,IACL,CAACI,GAAGW,MAAM;AACR,QAAE,KAAKf,EAAE,UAAUI,GAAGW,CAAC,CAAC;AAAA,IACzB;AAAA,IACD,MAAM;AACJ,QAAE,QAAQ,CAACX,MAAM;AACf,QAAAA;MACR,CAAO;AAAA,IACF;AAAA,EACL;AACA;AACA,IAAA6B,KAAA,MAAQ;AAAA,EACN,YAAY,GAAG,IAAI,IAAI;AACrB,SAAK,WAAW,GAAG,KAAK,QAAQ;AAAA,EACjC;AAAA,EACD,MAAM,GAAG;AACP,WAAO,KAAK,MAAM,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK;AAAA,EACvF;AAAA,EACD,OAAO,GAAG;AACR,WAAO,KAAK,MAAM,KAAK,EAAE,MAAM,EAAC,CAAE,GAAG;AAAA,EACtC;AAAA,EACD,OAAO,GAAG;AACR,WAAO,KAAK,MAAM,KAAK,EAAE,IAAI,EAAC,CAAE,GAAG;AAAA,EACpC;AAAA,EACD,SAAS;AACP,WAAO,IAAIC,GAAG,KAAK,UAAU,IAAI;AAAA,EAClC;AACH;AACA,MAAMC,GAAG;AAAA,EACP,YAAY,GAAG,GAAG/B,GAAG;AACnB,SAAK,WAAW,GAAG,KAAK,OAAO,GAAG,KAAK,UAAU,IAAIgC;AAAA,MACnD;AAAA,MACA,IAAIC,GAAE,CAAC,EAAE,OAAO,EAAE,EAAE;AAAA,MACpBjC;AAAA,IACN;AACI,UAAM,CAAC,GAAG,CAAC,IAAI4B;AAAA,MACb,KAAK,SAAS;AAAA,IACpB;AACI,SAAK,YAAY,GAAG,KAAK,cAAc;AAAA,EACxC;AAAA,EACD,WAAW,GAAG;AACZ,WAAO,KAAK,KAAK,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK,WAAW;AAAA,EAC1E;AAAA,EACD,QAAQ,GAAG;AACT,WAAO,KAAK,KAAK,UAAU,8BAA8B,CAAC,GAAG,EAAE,MAAM5B,QAAQ;AAC3E,MAAAA,MAAM,KAAK,QAAQ,EAAE,KAAK,KAAK,WAAW,OAAO;AAAA,IAClD,CAAA,GAAG,KAAK,KAAK,WAAW;AAAA,EAC1B;AAAA,EACD,OAAO,GAAG;AACR,WAAO,KAAK,KAAK,UAAU,6BAA6B,CAAC,GAAG,EAAE,MAAMA,QAAQ;AAC1E,MAAAA,MAAM,KAAK,QAAQ,EAAE,KAAK,KAAK,WAAW,MAAM;AAAA,IACjD,CAAA,GAAG,KAAK,KAAK,WAAW;AAAA,EAC1B;AAAA,EACD,gBAAgB,GAAG,GAAG;AACpB,SAAK,KAAK,gBAAgB,GAAG,CAAC;AAAA,EAC/B;AAAA,EACD,aAAa,GAAG,GAAG;AACjB,SAAK,KAAK,gBAAgB,GAAG,CAAC;AAAA,EAC/B;AAAA,EACD,YAAY,GAAG,GAAG;AAChB,SAAK,KAAK,YAAY,GAAG,CAAC;AAAA,EAC3B;AAAA,EACD,UAAU;AACR,SAAK,YAAa,GAAE,KAAK,QAAQ,QAAO;AAAA,EACzC;AACH;AACA,MAAM8B,GAAG;AAAA,EACP,YAAY,GAAG,GAAG9B,IAAI,IAAI;AACxB,SAAK,WAAW,GAAG,KAAK,SAAS,GAAG,KAAK,iBAAiBA,GAAG,KAAK,UAAU,CAAE,GAAE,KAAK,UAAU,IAAIgC,GAAG,KAAK,UAAU,KAAK,MAAM;AAAA,EACjI;AAAA,EACD,gBAAgB,GAAG,GAAG;AACpB,SAAK,QAAQ;AAAA,MACX,KAAK,SAAS,MAAM;AAAA,QAClB,SAAS;AAAA,QACT,YAAY,EAAE,YAAY,EAAG;AAAA,QAC7B,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,MACxB,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EACD,aAAa,GAAG,GAAG;AACjB,SAAK,QAAQ;AAAA,MACX,KAAK,SAAS,MAAM;AAAA,QAClB,SAAS;AAAA,QACT,YAAY,EAAE,SAAS,EAAG;AAAA,QAC1B,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,MACxB,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EACD,YAAY,GAAG,GAAG;AAChB,SAAK,QAAQ;AAAA,MACX,KAAK,SAAS,MAAM;AAAA,QAClB,SAAS;AAAA,QACT,YAAY,EAAE,QAAQ,EAAG;AAAA,QACzB,QAAQ,KAAK;AAAA,QACb,WAAW,KAAK;AAAA,MACxB,CAAO;AAAA,IACP;AAAA,EACG;AAAA,EACD,UAAU;AACR,SAAK,QAAQ,QAAQ,CAAC,MAAM;AAC1B;IACD,CAAA,GAAG,KAAK,QAAQ;EAClB;AACH;AACA,MAAME,KAAK,CAACtC,GAAG,GAAG,MAAM;AACtB,QAAMI,IAAIJ,EAAE,OAAQ,GAAE,IAAI,CAAC,GAAG,GAAGU,MAAM;AACrC,QAAIQ,IAAI;AACR,QAAId,EAAE,QAAQ;AACZ,YAAM,IAAIA,EAAE,MAAO,GAAEgB,IAAI,CAACC,GAAGC,OAAOJ,IAAI,IAAI,EAAEG,GAAG,OAAO,OAAO,CAAA,GAAI,GAAGC,CAAC,GAAGZ,CAAC;AAC3E,aAAO,QAAQ,QAAQ,EAAE,GAAGU,GAAGV,CAAC,CAAC,EAAE,KAAK,CAACW,MAAMnB,GAAGD,GAAE,CAAE,GAAEoB,CAAC,GAAG;AAAA,QAC1D,WAAWH;AAAA,MACZ,CAAA,CAAC;AAAA,IACH;AACD,WAAO,QAAQ,QAAQ,EAAE,MAAM,GAAG,WAAW,IAAI,SAAS,EAAC,CAAE;AAAA,EACjE;AACE,SAAO,EAAE,GAAG,CAAE,GAAE,CAAC;AACnB;AACA,MAAMkB,GAAG;AAAA,EACP,YAAY,GAAG,GAAGhC,GAAG;AACnB,SAAK,WAAW,GAAG,KAAK,SAAS,GAAG,KAAK,KAAKA,GAAG,KAAK,gBAAgB,CAAA,GAAI,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,EAC9G;AAAA,EACD,OAAO,GAAG,IAAI,MAAM;AAAA,EACtB,GAAK;AACD,UAAMA,IAAI;AAAA,MACR,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,QAAQ,KAAK;AAAA,MACb,IAAI,KAAK;AAAA,IACf;AACI,SAAK,SAAS,aAAa,SAAS,KAAKA,CAAC;AAC1C,UAAM,IAAI,MAAM;AACd,YAAM,IAAI,KAAK,SAAS,aAAa,SAAS,QAAQA,CAAC;AACvD,UAAI,MAAM,KAAK,SAAS,aAAa,SAAS,OAAO,GAAG,CAAC;AAAA,IAC/D;AACI,WAAO,KAAK,cAAc,KAAK,CAAC,GAAG;AAAA,EACpC;AAAA,EACD,SAAS,GAAG,GAAG;AACb,UAAMA,IAAI,KAAK,SAAS,MAAM,IAAI;AAAA,MAChC,KAAK,SAAS,MAAM;AAAA,IAC1B,GAAO,IAAI,CAAA,GAAI,IAAI,KAAK,SAAS,aAAa,SAAS;AAAA,MACjD,CAAC,MAAM,EAAE,QAAQ,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,OAAO,KAAK;AAAA,IAChE;AACI,WAAO,QAAQ;AAAA,MACb,EAAE,IAAI,CAAC,MAAM;AACX,cAAMM,IAAIN,EAAE;AAAA,UACV,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,OAAO,MAAM,CAAC;AAAA,QACzD,GAAWc,IAAI,KAAK,SAAS,aAAa,SAAS,OAAO,CAAC,MAAM,EAAE,QAAQ,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,OAAO,KAAK,OAAOR,EAAE,KAAK,CAACU,MAAM,EAAE,OAAO,MAAMA,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE;AACpK,eAAO,QAAQ;AAAA,UACbV,EAAE,IAAI,CAAC,MAAM;AACX,kBAAMU,IAAI,IAAIe;AAAA,cACZ,KAAK;AAAA,cACL;AAAA,cACA,KAAK;AAAA,YACnB;AACY,mBAAOG,GAAGpB,GAAG,GAAGE,CAAC,EAAE,KAAK,CAACC,MAAM;AAC7B,oBAAM,EAAE,MAAMC,IAAI,IAAI,SAASC,GAAG,WAAWgB,EAAG,IAAGlB;AACnD,qBAAO,QAAQ;AAAA,gBACbkB,IAAI,CAAE,IAAG,EAAE,GAAGjB,GAAGC,GAAGH,CAAC;AAAA,cACrC,EAAgB,KAAK,CAACoB,MAAM;AACZ,kBAAE,EAAE,EAAE,IAAIA;AAAA,cAC1B,CAAe;AAAA,YACf,CAAa;AAAA,UACb,CAAW;AAAA,QACX;AAAA,MACA,CAAO;AAAA,IACP,EAAM,KAAK,MAAM,CAAC;AAAA,EACf;AAAA,EACD,MAAM,GAAG,GAAG;AACV,QAAIpC,IAAI,GAAG,IAAI,KAAK;AACpB,UAAM,IAAI,EAAE,MAAM,GAAG;AACrB,MAAE,SAAS,MAAM,IAAI,EAAE,CAAC,GAAGA,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG;AACnD,UAAM,IAAI;AAAA,MACR,IAAI;AAAA,MACJ,QAAQ,KAAK;AAAA,MACb,KAAKA;AAAA,MACL,IAAI;AAAA,IACV;AACI,SAAK,SAAS,aAAa,SAAS,KAAK,CAAC;AAC1C,UAAMM,IAAI,MAAM;AACd,YAAMQ,IAAI,KAAK,SAAS,aAAa,SAAS,QAAQ,CAAC;AACvD,MAAAA,IAAI,MAAM,KAAK,SAAS,aAAa,SAAS,OAAOA,GAAG,CAAC;AAAA,IAC/D;AACI,WAAO,KAAK,cAAc,KAAKR,CAAC,GAAGA;AAAA,EACpC;AAAA,EACD,UAAU;AACR,SAAK,cAAc,QAAQ,CAAC,MAAM,EAAG,CAAA;AAAA,EACtC;AACH;AACWqB,GAAG,CAAC/B,MAAM;AACnB,EAAAA,EAAE,cAAc,cAAc,CAAC,MAAM,CAAC,MAAM;AAC1C,MAAE,OAAO;AAAA,MACP;AAAA,MACA,CAACI,GAAG,EAAE,UAAU,QAAQ;AACtB,UAAE,YAAY,EAAE,SAAS,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;AAC3C,YAAE,oBAAoB,GAAG,CAAC;AAAA,QACpC,CAAS;AAAA,MACF;AAAA,IACP;AAAA,EACA,CAAG;AACH,CAAC;AAAE,MAACqC,KAAI,CAACzC,GAAG,MAAM,MAAM,OAAO,KAAK,WAAWA,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,IAAIA,EAAE,GAAG,GAAG,CAAC,GAAG0C,KAAI,MAAM;AAAA,EAC9F,cAAc;AACZ,SAAK,OAAO,CAAA,GAAI,KAAK,MAAM,CAAC1C,MAAMa,MAAM,KAAK,OAAOb,GAAG,MAAM0C,GAAE,IAAI,GAAG7B,CAAC,CAAC,GAAG,KAAK,OAAO,CAACb,MAAMa,MAAM,KAAK,OAAOb,GAAG,MAAM0C,GAAE,KAAK,GAAG7B,CAAC,CAAC,GAAG,KAAK,QAAQ,CAACb,MAAMa,MAAM,KAAK,OAAOb,GAAG,MAAM0C,GAAE,MAAM,GAAG7B,CAAC,CAAC,GAAG,KAAK,OAAO,CAACb,MAAMa,MAAM,KAAK,OAAOb,GAAG,MAAM0C,GAAE,KAAK,GAAG7B,CAAC,CAAC;AAAA,EAClQ;AAAA,EACD,OAAOb,GAAGa,GAAG;AACX,SAAK,KAAK,QAAQb,CAAC,MAAM,OAAO,KAAK,KAAK,KAAKA,CAAC,GAAGa,EAAG;AAAA,EACvD;AACH;AACA,IAAI8B,IAAID;AACRC,EAAE,MAAM,IAAI3C,MAAMyC,GAAE,QAAQ,KAAK,GAAGzC,CAAC;AACrC2C,EAAE,OAAO,IAAI3C,MAAMyC,GAAE,QAAQ,MAAM,GAAGzC,CAAC;AACvC2C,EAAE,QAAQ,IAAI3C,MAAMyC,GAAE,QAAQ,OAAO,GAAGzC,CAAC;AACzC2C,EAAE,OAAO,IAAI3C,MAAMyC,GAAE,QAAQ,MAAM,GAAGzC,CAAC;AACvC,MAAM4C,IAAI,MAAM,KAAK,OAAO,IAAI,KAAK,OAAQ,KAAI,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC;AAChF,SAASC,KAAK;AACZ,SAAOD,EAAG,IAAGA,EAAG,IAAG,MAAMA,EAAC,IAAK,MAAMA,EAAC,IAAK,MAAMA,EAAG,IAAG,MAAMA,EAAG,IAAGA,EAAC,IAAKA;AAC3E;AACA,MAAME,GAAG;AAAA,EACP,YAAY,GAAG,GAAG;AAChB,SAAK,SAAS,GAAG,KAAK,OAAO,IAAI,KAAK,WAAW,IAAI,KAAK,aAAa,CAAA,GAAI,KAAK,aAAa,GAAG,KAAK,KAAKD,MAAM,KAAK,OAAO,GAAG,KAAK,aAAa;AAAA,MAC/I,SAAS,CAAE;AAAA,MACX,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,MAAM,CAAE;AAAA,IACd,GAAO,KAAK,YAAY,EAAE,MAAM,QAAQ,QAAQ,EAAC,CAAE;AAAA,EAChD;AAAA,EACD,MAAM,GAAG,GAAG;AACV,QAAIzC,IAAI,EAAE,IAAI,eAAe;AAC7B,WAAOA,MAAMA,IAAoB,oBAAI,IAAG,GAAI,EAAE,SAAS,iBAAiBA,CAAC,IAAIA,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAI,aAAa,gBAAgBuC,EAAE;AAAA,MACrI;AAAA,MACA;AAAA,IACN,GAAO,MAAM;AAAA,IACR,MAAK,KAAK,OAAO,SAAS,2BAA2B,EAAE,MAAM,KAAI,CAAE,GAAG,KAAK,eAAe,MAAM,KAAK,aAAa,KAAK,aAAa,GAAG,KAAK,OAAO,SAAS,yBAAyB,EAAE,MAAM,KAAM,CAAA,IAAI,MAAM;AAC5M,MAAAvC,EAAE,OAAO,IAAI,GAAG,KAAK,OAAO,SAAS,6BAA6B,EAAE,MAAM,MAAM,GAAG,KAAK,aAAa,KAAK,aAAa,GAAG,KAAK,eAAe,KAAK,KAAK,OAAO,SAAS,wBAAwB,EAAE,MAAM,KAAM,CAAA;AAAA,IACpN;AAAA,EACG;AAAA,EACD,YAAY,GAAG,IAAI,WAAW;AAC5B,QAAI,EAAE,QAAQ;AACZ,UAAI,EAAE,WAAW;AACf;AACF,QAAE,OAAO,YAAY,CAAC;AAAA,IACvB;AACD,MAAE,SAAS,MAAM,KAAK,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAE,IAAG,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,OAAO,SAAS,4BAA4B,EAAE,MAAM,EAAG,CAAA;AAAA,EACrJ;AAAA,EACD,aAAa,GAAG,IAAI,WAAW;AAC7B,QAAI,EAAE,QAAQ;AACZ,UAAI,EAAE,WAAW;AACf;AACF,QAAE,OAAO,YAAY,CAAC;AAAA,IACvB;AACD,MAAE,SAAS,MAAM,KAAK,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAE,IAAG,KAAK,SAAS,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,OAAO,SAAS,4BAA4B,EAAE,MAAM,EAAG,CAAA;AAAA,EACxJ;AAAA,EACD,gBAAgB,GAAG,IAAI,CAAA,GAAIA,GAAG;AAC5B,UAAMY,IAAI,CAAC,EAAE,YAAY,EAAG,GAAE,CAAC;AAC/B,WAAO,KAAK,WAAW,KAAKA,CAAC,GAAG,KAAK,OAAO,SAAS,6BAA6B,EAAE,MAAM,KAAI,CAAE,GAAG,MAAM;AACvG,UAAIZ,GAAG;AACL,cAAMa,IAAI,KAAK,WAAW,QAAQD,CAAC;AACnC,QAAAC,IAAI,OAAO,KAAK,WAAW,OAAOA,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,6BAA6B,EAAE,MAAM,KAAM,CAAA;AAAA,MAC1G;AAAA,IACP;AAAA,EACG;AAAA,EACD,gBAAgB,GAAG,IAAI,CAAA,GAAIb,GAAG;AAC5B,UAAMY,IAAI,CAAC,EAAE,YAAY,EAAG,GAAE,CAAC;AAC/B,WAAO,KAAK,WAAW,KAAKA,CAAC,GAAG,KAAK,OAAO,SAAS,6BAA6B,EAAE,MAAM,KAAI,CAAE,GAAG,MAAM;AACvG,UAAIZ,GAAG;AACL,cAAMa,IAAI,KAAK,WAAW,QAAQD,CAAC;AACnC,QAAAC,IAAI,OAAO,KAAK,WAAW,OAAOA,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,6BAA6B,EAAE,MAAM,KAAM,CAAA;AAAA,MAC1G;AAAA,IACP;AAAA,EACG;AAAA,EACD,YAAY,GAAG,IAAI,CAAA,GAAIb,GAAG;AACxB,UAAMY,IAAI,CAAC,EAAE,QAAQ,EAAG,GAAE,CAAC;AAC3B,WAAO,KAAK,WAAW,KAAKA,CAAC,GAAG,KAAK,OAAO,SAAS,yBAAyB,EAAE,MAAM,KAAI,CAAE,GAAG,MAAM;AACnG,UAAI,CAACZ;AACH;AACF,YAAMa,IAAI,KAAK,WAAW,QAAQD,CAAC;AACnC,MAAAC,IAAI,OAAO,KAAK,WAAW,OAAOA,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,yBAAyB,EAAE,MAAM,KAAM,CAAA;AAAA,IAC3G;AAAA,EACG;AAAA,EACD,aAAa,GAAG,IAAI,CAAA,GAAIb,GAAG;AACzB,UAAMY,IAAI,CAAC,EAAE,SAAS,EAAG,GAAE,CAAC;AAC5B,WAAO,KAAK,WAAW,KAAKA,CAAC,GAAG,KAAK,OAAO,SAAS,0BAA0B,EAAE,MAAM,KAAI,CAAE,GAAG,MAAM;AACpG,UAAI,CAACZ;AACH;AACF,YAAMa,IAAI,KAAK,WAAW,QAAQD,CAAC;AACnC,MAAAC,IAAI,OAAO,KAAK,WAAW,OAAOA,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,0BAA0B,EAAE,MAAM,KAAM,CAAA;AAAA,IAC5G;AAAA,EACG;AAAA,EACD,YAAY,IAAI,WAAW;AACzB,UAAM,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;AAC9B,WAAO,EAAE,OAAO,CAACb,GAAG,GAAG,MAAM;AAC3B,YAAM,EAAE,OAAO,IAAI,EAAG,IAAG,EAAE,WAAW;AACtC,aAAOA,EAAE,CAAC,IAAIA,EAAE,OAAO,GAAG,GAAG,CAAC,IAAIA,EAAE,CAAC,IAAI,GAAGA;AAAA,IAC7C,GAAE,MAAM,EAAE,MAAM,CAAC;AAAA,EACnB;AAAA,EACD,SAAS;AACP,SAAK,UAAU,KAAK,OAAO,YAAY,IAAI;AAAA,EAC5C;AAAA,EACD,YAAY,GAAG;AACb,WAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC,MAAM;AACxC,YAAMA,IAAI,KAAK,SAAS,CAAC,GAAG,IAAIA,EAAE,QAAQ,CAAC;AAC3C,UAAI,OAAOA,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,2BAA2B;AAAA,QACzE,MAAM;AAAA,QACN,YAAY;AAAA,MACb,CAAA;AAAA,IACP,CAAK,GAAG,OAAO,EAAE;AAAA,EACd;AACH;AACA,MAAM2C,KAAK,CAAC/C,GAAG,GAAG,MAAM;AACtB,WAASI,IAAI,GAAG,IAAIJ,EAAE,QAAQI,IAAI,KAAK,EAAEJ,EAAEI,CAAC,CAAC,MAAM,IAAIA,KAAK;AAC1D,UAAM,IAAI,EAAEJ,EAAEI,CAAC,EAAE,EAAE,KAAK,WAAW,IAAIJ,EAAEI,CAAC,EAAE,YAAY,CAAC;AACzD,IAAA2C,GAAG,GAAG,GAAG,CAAC;AAAA,EACX;AACH,GAAGC,KAAK,CAAChD,GAAG,GAAG,MAAM;AACnB,MAAI,EAAEA,CAAC,MAAM,IAAI;AACf,UAAMI,IAAI,EAAEJ,EAAE,EAAE,KAAK,WAAW,IAAIA,EAAE,SAASI,CAAC;AAChD,IAAA2C,GAAG,GAAG,GAAG,CAAC;AAAA,EACX;AACH,GAAGE,KAAI,CAACjD,GAAG,MAAM;AACf,QAAM,IAAI,CAAA;AACV,SAAOgD,GAAGhD,GAAG,GAAG,CAACI,MAAM;AACrB,MAAE,KAAKA,CAAC;AAAA,EACT,CAAA,GAAG;AACN,GAAG8C,KAAK,CAAClD,GAAG,GAAG,MAAM;AACnB,MAAII;AACJ,SAAO4C,GAAGhD,GAAG,GAAG,CAAC,MAAM;AACrB,QAAI,EAAE,CAAC;AACL,aAAOI,IAAI,GAAG;AAAA,EACjB,CAAA,GAAGA;AACN;AACA,MAAM+C,GAAG;AAAA,EACP,YAAY,GAAG,GAAG/C,GAAG;AACnB,SAAK,OAAO,GAAG,KAAK,WAAW,GAAG,KAAK,MAAM,CAAE,GAAE,KAAK,UAAU,IAAI,KAAK,WAAW,CAAA,GAAIA,EAAE;AAAA,MACxF;AAAA,MACA,CAAC,GAAG,MAAM;AACR,aAAK,IAAI,KAAK,EAAE,IAAI,GAAG,KAAK,UAAU6C,GAAE,GAAG,CAAC;AAAA,MAC7C;AAAA,IACF,GAAE7C,EAAE;AAAA,MACH;AAAA,MACA,CAAC,GAAG,MAAM;AACR,YAAI,IAAI,KAAK,IAAI,QAAQ,EAAE,IAAI;AAC/B,YAAI,MAAM,KAAK,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,KAAK,QAAQ,QAAQ,EAAE,IAAI,GAAG,IAAI,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC,GAAG,KAAK,UAAU6C,GAAE,GAAG,CAAC;AAAA,MAC9H;AAAA,IACF,GAAE7C,EAAE;AAAA,MACH;AAAA,MACA,CAAC,GAAG,MAAM;AACR,aAAK,UAAU6C,GAAE,GAAG,CAAC;AAAA,MACtB;AAAA,IACP;AAAA,EACG;AAAA,EACD,MAAM,IAAI,IAAI;AACZ,UAAM,IAAI,CAAA;AACV,WAAOD,GAAG,KAAK,MAAM,KAAK,UAAU,CAAC5C,MAAM;AACzC,aAAO,KAAK,CAAC,EAAE,MAAM,CAACY,MAAM,EAAEA,CAAC,MAAMZ,EAAEY,CAAC,CAAC,KAAK,EAAE,KAAKZ,CAAC;AAAA,IACvD,CAAA,GAAG;AAAA,EACL;AAAA,EACD,IAAI,GAAG;AACL,WAAO8C,GAAG,KAAK,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;AAAA,EAC/F;AACH;AACA,MAAME,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,WAA2B,oBAAI;EACrC;AAAA,EACD,IAAI,GAAG,GAAG;AACR,SAAK,SAAS,IAAI,GAAG,CAAC;AAAA,EACvB;AAAA,EACD,IAAI,GAAG;AACL,WAAO,KAAK,SAAS,IAAI,CAAC;AAAA,EAC3B;AACH;AACA,MAAMC,KAAK,CAACrD,MAAM;AAChB,MAAI,IAAIA,GAAG,IAAI;AACf,SAAO,EAAE;AACP,QAAI,IAAI,GAAG,IAAI,EAAE;AACnB,SAAO;AACT,GAAGsD,KAAK,CAACtD,MAAMA,EAAE,IAAI,CAAC,CAACc,GAAGV,CAAC,MAAM,CAACiD,GAAGvC,CAAC,GAAGA,GAAGV,CAAC,CAAC,EAAE,KAAK,CAAC,CAACU,CAAC,GAAG,CAACV,CAAC,MAAMU,IAAIV,CAAC,EAAE,IAAI,CAAC,CAAG,EAAAU,GAAGV,CAAC,MAAM,CAACU,GAAGV,CAAC,CAAC,GAAGmD,KAAI,CAACvD,MAAMA,aAAa,OAAO,KAAKA,KAAK,OAAOA,KAAK,YAAY,CAAC,MAAM,QAAQA,CAAC,GAAGwD,IAAI,CAACxD,MAAM,MAAM;AACxM,MAAI,CAAC,EAAE;AACL,WAAOA;AACT,QAAM,IAAI,EAAE;AACZ,MAAIuD,GAAEvD,CAAC,KAAKuD,GAAE,CAAC;AACb,eAAWnD,KAAK;AACdmD,MAAAA,GAAE,EAAEnD,CAAC,CAAC,KAAKJ,EAAEI,CAAC,KAAK,OAAO,OAAOJ,GAAG,EAAE,CAACI,CAAC,GAAG,CAAA,EAAI,CAAA,GAAGoD,EAAExD,EAAEI,CAAC,GAAG,EAAEA,CAAC,CAAC,KAAK,OAAO,OAAOJ,GAAG,EAAE,CAACI,CAAC,GAAG,EAAEA,CAAC,EAAG,CAAA;AACrG,SAAOoD,EAAExD,GAAG,GAAG,CAAC;AAClB,GAAGyD,KAAK,CAACzD,GAAG,MAAM,CAACA,KAAKA,MAAM,QAAQ,KAAKA,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG0D,KAAK,CAAC1D,GAAG,MAAM;AAC1F,MAAI,IAAI,CAAE,GAAEI,IAAI,CAAA,GAAI;AACpB,QAAM,IAAI,MAAM;AACd,YAAQ,IAAI,aAAa,gBAAgB,QAAQ,KAAK,uBAAuB;AAC7E,UAAMM,IAAoB,oBAAI,OAAOQ,IAAIoC,GAAG,EAAE,IAAI,CAAClC,GAAGC,MAAM,CAACD,GAAGhB,EAAEiB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAACD,GAAGC,MAAM;AACrF,UAAIsC;AACJ,YAAM,IAAIjD,EAAE,IAAIU,CAAC,KAAK,IAAIG,IAAIF,EAAE,WAAW,CAAC,EAAE,SAASkB,IAAIlB,EAAE,cAAc,CAAC,EAAE,YAAYmB,IAAInB,EAAE,UAAU,CAAC,EAAE;AAC7G,MAAAX,EAAE,IAAIU,GAAG;AAAA,QACP,SAAS,EAAE,WAAWG;AAAA,QACtB,YAAY,EAAE,cAAcgB;AAAA,QAC5B,QAAQ,EAAE,UAAUC;AAAA,MACrB,CAAA,GAAGD,MAAMnB,EAAE,WAAW,aAAa,CAAE,IAAGoB,MAAMpB,EAAE,WAAW,SAAS,CAAE,IAAGG,MAAMH,EAAE,WAAW,UAAUoC,EAAE,CAAE,IAAGG,IAAKvC,EAAE,WAAW,OAAO,SAASuC,EAAG,WAAW,OAAO;AACrK,YAAMC,IAAK,CAAA,GAAIC,KAAK,CAAA,GAAIC,KAAK,CAAA;AAC7B,UAAI1C,EAAE,WAAW,QAAQ,CAAC2C,MAAM;AAC9B,cAAM,CAACC,GAAGC,EAAC,IAAIF;AACf,QAAAN,GAAGQ,GAAE,aAAajE,EAAE,WAAW,MAAMuC,MAAM,OAAOyB,EAAE,cAAc,aAAaJ,EAAG;AAAA,UAChFI,EAAE;AAAA,QACZ,IAAYR,EAAEpC,EAAE,WAAW,YAAY4C,EAAE,UAAU,IAAIxB,MAAM,OAAOwB,EAAE,UAAU,aAAaH,GAAG,KAAKG,EAAE,MAAM,IAAIR,EAAEpC,EAAE,WAAW,QAAQ4C,EAAE,MAAM,IAAIzC,MAAM,OAAOyC,EAAE,WAAW,aAAaF,GAAG,KAAKE,EAAE,OAAO,IAAIR,EAAEpC,EAAE,WAAW,SAAS4C,EAAE,OAAO;AAAA,MAC1O,CAAA,GAAGJ,EAAG,QAAQ,CAACG,MAAM;AACpBP,QAAAA,EAAEpC,EAAE,WAAW,YAAY2C,EAAE3C,EAAE,WAAW,UAAU,CAAC;AAAA,MACtD,CAAA,GAAGyC,GAAG,QAAQ,CAACE,MAAM;AACpBP,QAAAA,EAAEpC,EAAE,WAAW,QAAQ2C,EAAE3C,EAAE,WAAW,MAAM,CAAC;AAAA,MAC9C,CAAA,GAAG0C,GAAG,QAAQ,CAACC,MAAM;AACpBP,QAAAA,EAAEpC,EAAE,WAAW,SAAS2C,EAAE3C,EAAE,WAAW,OAAO,CAAC;AAAA,MACvD,CAAO,GAAGG,KAAKF,EAAE,WAAW;AACpB,cAAM0C,IAAI/D,EAAE,UAAUoB,CAAC,GAAG4C,IAAI3C,EAAE,YAAYA,IAAI;AAAA,UAC9C,SAAS,CAAC,CAACE;AAAA,QACrB;AACQ,QAAAH,EAAE,YAAY2C,CAAC,EAAE,QAAQ,CAACE,OAAM;AAC9B,YAAEA,IAAGD,CAAC;AAAA,QAChB,CAAS;AAAA,MACF;AAAA,IACP;AACI,YAAQ,IAAI,aAAa,gBAAgB,QAAQ,QAAQ,uBAAuB,GAAG9C,EAAE,QAAQ,CAAC,CAACE,GAAGC,CAAC,MAAM;AACvG,QAAED,GAAGC,CAAC;AAAA,IACZ,CAAK,GAAG,IAAI,IAAIjB,IAAI,CAAA,GAAI,EAAEM,CAAC;AAAA,EACxB,GAAE,IAAI,MAAM;AACX,iBAAa,CAAC,GAAG,IAAI,WAAW,GAAG,CAAC;AAAA,EACxC;AACE,SAAO,CAACA,GAAGQ,MAAM;AACf,UAAM,IAAI,EAAE,QAAQR,CAAC;AACrB,QAAI,IAAI,IAAI;AACV,YAAMU,IAAIhB,EAAE,CAAC;AACb,aAAOc,EAAE,YAAYE,EAAE,UAAU,KAAKF,EAAE,eAAeE,EAAE,aAAa,KAAKF,EAAE,WAAWE,EAAE,SAAS,KAAKF,EAAE,cAAcE,EAAE,YAAY,KAAK,EAAC;AAAA,IAC7I;AACD,WAAO,EAAE,KAAKV,CAAC,GAAGN,EAAE,KAAKc,CAAC,GAAG;EACjC;AACA;AACA,MAAMgD,GAAG;AAAA,EACP,YAAY,GAAG,IAAI,IAAI;AACrB,SAAK,YAAY,GAAG,KAAK,cAAc,CAAE,GAAE,KAAK,eAAe,EAAE,UAAU,CAAE,GAAE,UAAU,CAAE,EAAA,GAAI,KAAK,WAAW,CAAE,GAAE,KAAK,aAAa,CAAE,GAAE,KAAK,gBAAgB,CAAE,GAAE,KAAK,yBAAyB,IAAId,GAAE,GAAI,KAAK,SAAS,EAAE,OAAO,YAAY,IAAI;AACjP,UAAMhD,IAAI,IAAI0C,GAAG,KAAK,QAAQ,MAAM;AACpC,IAAA1C,EAAE,OAAO,QAAQ,EAAE,IAAI,IAAI,KAAK,QAAQ,IAAI+C,GAAG/C,GAAG,KAAK,UAAU,KAAK,MAAM;AAC5E,UAAM,IAAI,KAAK,cAAcsD;AAAA,MAC3B;AAAA,MACA,CAAC,MAAM;AACL,cAAM,IAAI,MAAM,KAAK,EAAE,KAAM,CAAA;AAC7B,gBAAQ,IAAI,aAAa,gBAAgB,QAAQ,KAAK,oBAAoB,EAAE,MAAM;AAAA,EACxF,EAAE;AAAA,UACM,CAAChD,MAAM,GAAGA,EAAE,QAAQ,WAAW,KAAKA,EAAE,EAAE;AAAA;AAAA,QAEzC,CAAA,EAAE,GAAG,EAAE,QAAQ,CAACA,MAAM;AACrB,gBAAMQ,IAAI,EAAE,IAAIR,CAAC;AACjB,UAAAA,EAAE,UAAUA,EAAE,OAAO,SAAS,UAAU,KAAK,OAAO,SAAS,oCAAoC,EAAE,MAAMA,EAAC,CAAE,GAAGQ,KAAK,QAAQA,EAAE,WAAW,KAAK,OAAO,SAAS,8BAA8B,EAAE,MAAMR,GAAG,GAAGQ,KAAK,QAAQA,EAAE,cAAc,KAAK,OAAO,SAAS,iCAAiC,EAAE,MAAMR,EAAG,CAAA,GAAGQ,KAAK,QAAQA,EAAE,UAAU,KAAK,OAAO,SAAS,6BAA6B,EAAE,MAAMR,EAAG,CAAA;AAAA,QAC3Y,CAAS,GAAG,KAAK,OAAO;AAAA,UACd;AAAA,UACA,CAAE;AAAA,UACF,EAAE,SAAS,GAAI;AAAA,QACzB;AAAA,MACO;AAAA,IACP;AACI,YAAQ;AAAA,MACN,OAAO,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;AAAA,IAC/C,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,MAAM;AACR,gBAAM,EAAE,MAAMA,EAAG,IAAG;AACpB,eAAK,WAAW,QAAQ,CAACQ,MAAM;AAC7B,kBAAM,EAAE,WAAW,GAAG,QAAQE,GAAG,SAASC,EAAG,IAAGH,GAAG,CAACI,GAAGC,CAAC,IAAI;AAC5D,YAAAH,EAAE,MAAM,EAAE,IAAI,MAAME,EAAE,cAAcD,EAAE,KAAKX,EAAE,gBAAgBY,EAAE,YAAYC,CAAC,CAAC,GAAGD,EAAE,WAAWD,EAAE,KAAKX,EAAE,aAAaY,EAAE,SAASC,CAAC,CAAC,GAAGD,EAAE,UAAUD,EAAE,KAAKX,EAAE,YAAYY,EAAE,QAAQC,CAAC,CAAC;AAAA,UAC5L,CAAW;AAAA,QACF;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,MAAM;AACR,YAAE,EAAE,MAAM,EAAE,YAAY,IAAI,SAAS,GAAE,CAAE;AAAA,QAC1C;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,MAAM;AACR,YAAE,EAAE,MAAM,EAAE,YAAY,GAAE,CAAE;AAAA,QAC7B;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,MAAM;AACR,YAAE,EAAE,MAAM,EAAE,YAAY,IAAI,SAAS,GAAE,CAAE;AAAA,QAC1C;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,MAAM;AACR,YAAE,EAAE,MAAM,EAAE,QAAQ,GAAE,CAAE;AAAA,QACzB;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,MAAM;AACR,YAAE,EAAE,MAAM,EAAE,QAAQ,GAAE,CAAE;AAAA,QACzB;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQb,EAAC,MAAO;AAC7B,YAAE,GAAG;AAAA,YACH,QAAQ;AAAA,YACR,WAAW;AAAA,YACX,YAAY;AAAA,YACZ,SAAS;AAAA,UACrB,CAAW;AAAA,QACF;AAAA,MACF;AAAA,IACP,GAAO,KAAK,cAAc;AAAA,MACpB,KAAK,OAAO;AAAA,QACV;AAAA,QACA,CAAC,GAAG,EAAE,YAAY,QAAQ;AACxB,YAAE,GAAG,EAAE,YAAY,GAAI,CAAA;AAAA,QACxB;AAAA,MACF;AAAA,IACP,GAAO,KAAK,OAAO,UAAU,KAAK,OAAO,OAAO,SAAS,+BAA+B;AAAA,MAClF,UAAU;AAAA,IAChB,CAAK;AAAA,EACF;AAAA,EACD,OAAO,YAAY,GAAG;AACpB,WAAO,EAAE,SAAS,YAAY;AAAA,EAC/B;AAAA,EACD,cAAc,GAAG;AACf,SAAK,YAAY,QAAQ,CAAC,MAAM,OAAO,KAAK,YAAY,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,MAAM,MAAM;AAAA,MACjG,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,IACZ,CAAA;AAAA,EACF;AAAA,EACD,iBAAiB,GAAG;AAClB,UAAM,IAAI,KAAK,YAAY,QAAQ,CAAC;AACpC,QAAI,OAAO,KAAK,YAAY,OAAO,GAAG,CAAC,GAAG,KAAK,YAAY,KAAK,MAAM,MAAM;AAAA,MAC1E,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,IACZ,CAAA;AAAA,EACF;AAAA,EACD,UAAU,GAAG,GAAG;AACd,SAAK,SAAS,EAAE,EAAE,IAAI,GAAG,KAAK,OAAO,SAAS,4BAA4B,EAAE,MAAM,GAAG,QAAQ,EAAC,CAAE;AAAA,EACjG;AAAA,EACD,UAAU,GAAG;AACX,WAAO,KAAK,SAAS,EAAE,EAAE;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,WAAW,GAAG,IAAI,IAAI;AACpB,UAAMN,IAAI,IAAI0C,GAAG,KAAK,QAAQ,CAAC;AAC/B,WAAO,EAAE,YAAY,KAAK,MAAM,SAAS,KAAK1C,CAAC,GAAGA;AAAA,EACnD;AAAA,EACD,aAAa;AACX,WAAO,IAAIiC,GAAE,IAAI;AAAA,EAClB;AAAA,EACD,QAAQ,GAAG,GAAG;AACZ,WAAO,IAAID,GAAG,MAAM,GAAG,CAAC;AAAA,EACzB;AAAA,EACD,MAAM,GAAG;AACP,UAAM;AAAA,MACJ,UAAU;AAAA,MACV,QAAQhC;AAAA,MACR,YAAY;AAAA,MACZ,SAAS,IAAI,CAAE;AAAA,MACf,WAAW;AAAA,IACjB,IAAQ,GAAGM,IAAI,EAAE,OAAOmC,GAAI,GAAEsB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,QAAQ/D,GAAG,SAAS,CAAA;AACvE,QAAI,GAAG;AACL,YAAMgB,IAAI,KAAK,UAAU,CAAC;AAC1B,MAAAA,EAAE,MAAMV,GAAGN,GAAG,GAAG,CAAC,GAAG+D,EAAE,QAAQ,KAAK,MAAM;AACxC,QAAA/C,EAAE,OAAOV,CAAC;AAAA,MAClB,CAAO;AAAA,IACF;AACD,WAAO,KAAK,WAAW,KAAKyD,CAAC,GAAG,KAAK,MAAM,IAAI,QAAQ,CAAC/C,MAAM;AAC5D,UAAIhB,EAAE,MAAMgB,CAAC,GAAG;AACd,YAAI,IAAI,MAAM;AAAA,QACtB;AACQ,UAAE,eAAe,IAAIA,EAAE;AAAA,UACrB,EAAE;AAAA,UACF;AAAA,UACA;AAAA,QACD,IAAG,EAAE,YAAY,IAAIA,EAAE,aAAa,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE,WAAW,IAAIA,EAAE,aAAa,EAAE,QAAQ,GAAG,CAAC,IAAI+C,EAAE,QAAQ,KAAK,CAAC;AAAA,MAC3H;AAAA,IACF,CAAA,GAAG,MAAM;AACR,UAAI,GAAG;AACL,QAAAA,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAG,CAAA;AAC5B,cAAM/C,IAAI,KAAK,WAAW,QAAQ+C,CAAC;AACnC,QAAA/C,IAAI,MAAM,KAAK,WAAW,OAAOA,GAAG,CAAC;AAAA,MACtC;AAAA,IACP;AAAA,EACG;AAAA,EACD,oBAAoB,GAAG,GAAG;AACxB,SAAK,uBAAuB,IAAI,GAAG,CAAC;AAAA,EACrC;AAAA,EACD,oBAAoB,GAAG;AACrB,WAAO,KAAK,uBAAuB,IAAI,CAAC;AAAA,EACzC;AAAA,EACD,UAAU;AACR,SAAK,cAAc,QAAQ,CAAC,MAAM,EAAG,CAAA;AAAA,EACtC;AACH;AACA,MAAMgD,KAAK,CAACpE,MAAM;AAChB,MAAI,MAAM,QAAQA,CAAC,GAAG;AACpB,UAAM,CAAC,GAAG,GAAG,CAAC,IAAIA;AAClB,WAAO;AAAA,MACL,cAAc;AAAA,MACd,WAAW;AAAA,IACjB;AAAA,EACG;AACD,SAAO;AAAA,IACL,cAAcA;AAAA,IACd,WAAW,CAAE;AAAA,EACjB;AACA,GAAGqE,KAAI,CAACrE,GAAG,GAAG,GAAGI,GAAG,GAAG,MAAM;AAC3B,IAAE,QAAQ,CAAC,MAAM;AACf,UAAMM,IAAI0D,GAAG,CAAC,GAAGlD,IAAId,EAAEM,EAAE,YAAY;AACrC,QAAIA,EAAE,iBAAiB,QAAQ;AAC7B,YAAM,IAAIV,EAAE,WAAW,MAAM;AAC7B,QAAE,OAAO,QAAQ,OAAO,KAAK,CAAC,EAAE,QAAQ,CAACoB,MAAM;AAC7C,cAAMC,IAAI,EAAED,CAAC;AACbiD,QAAAA,GAAErE,GAAG,GAAG,CAACqB,EAAE,KAAK,GAAGjB,GAAG,GAAGgB,CAAC;AAAA,MAClC,CAAO,GAAG,EAAE,YAAY,CAAC,GAAGV,EAAE,UAAU,QAAQ,CAACU,MAAM;AAC/C,QAAAA,EAAE,cAAc,EAAE,gBAAgBA,EAAE,YAAY;AAAA,UAC9C,aAAaA,EAAE;AAAA,QACzB,CAAS,GAAGA,EAAE,WAAW,EAAE,aAAaA,EAAE,SAAS,EAAE,aAAaA,EAAE,YAAW,CAAE,GAAGA,EAAE,UAAU,EAAE,YAAYA,EAAE,QAAQ,EAAE,aAAaA,EAAE,YAAW,CAAE;AAAA,MACtJ,CAAO;AAAA,IACF,WAAUpB,EAAE,oBAAoBkB,EAAE,IAAI,GAAG;AACxC,YAAM,IAAIlB,EAAE,oBAAoBkB,EAAE,IAAI;AACtC,WAAK,EAAER,GAAG;AAAA,QACR,UAAUV;AAAA,QACV,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAaI;AAAA,QACb,OAAO;AAAA,QACP,QAAQ;AAAA,MAChB,CAAO;AAAA,IACP,OAAW;AACL,YAAM,IAAIA,EAAEM,EAAE,YAAY;AAC1B,UAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,GAAG;AAC/CiC,QAAAA,EAAE;AAAA,UACA,2CAA2CjC,EAAE,YAAY;AAAA,QACnE;AACQ;AAAA,MACD;AACD,YAAMU,IAAIpB,EAAE,WAAW,EAAE,IAAI;AAC7B,MAAAoB,EAAE,OAAOV,EAAE,cAAcU,EAAE,OAAO,EAAE,QAAQ,CAAA,GAAI,EAAE,cAAcA,EAAE,gBAAgB,EAAE,UAAU,GAAG,EAAE,WAAWA,EAAE,aAAa,EAAE,OAAO,GAAG,EAAE,UAAUA,EAAE,YAAY,EAAE,MAAM,GAAG,EAAE,YAAYA,GAAG,CAAC,GAAGV,EAAE,UAAU,QAAQ,CAACW,MAAM;AAC5N,cAAMC,IAAI,EAAE,aAAaD,EAAE,YAAW;AACtC,QAAAA,EAAE,cAAcD,EAAE,gBAAgBC,EAAE,YAAYC,CAAC,GAAGD,EAAE,WAAWD,EAAE,aAAaC,EAAE,SAASC,CAAC,GAAGD,EAAE,UAAUD,EAAE,YAAYC,EAAE,QAAQC,CAAC;AAAA,MACrI,CAAA,GAAG,EAAE,YAAY+C,GAAErE,GAAGoB,GAAG,EAAE,UAAUhB,GAAG,CAAC;AAAA,IAC3C;AAAA,EACL,CAAG;AACH,GAAGkE,KAAK,CAACtE,GAAG,MAAM;AAChB,QAAM,EAAE,OAAO,GAAG,YAAYI,GAAG,aAAa,GAAG,OAAO,EAAG,IAAG,GAAG,IAAI,CAAA;AACrE,SAAO,OAAO,KAAK,CAAC,EAAE,QAAQ,CAACM,MAAM;AACnC,UAAMQ,IAAI,EAAER,CAAC,GAAG,IAAI,OAAO,WAAWQ,CAAC;AACvC,MAAE,WAAWlB,EAAE,YAAY,KAAKU,CAAC;AACjC,UAAMU,IAAI,CAACC,MAAM;AACf,MAAAA,EAAE,UAAUrB,EAAE,cAAcU,CAAC,IAAIV,EAAE,iBAAiBU,CAAC;AAAA,IAC3D;AACI,MAAE,YAAYU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,eAAeA,CAAC,CAAC;AAAA,EACtD,CAAG,GAAGiD,GAAErE,GAAGA,EAAE,MAAM,MAAM,CAAC,CAAC,GAAGI,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,CAACM,MAAM;AACxD,IAAAA;EACJ,CAAG;AACH,GAAG6D,KAAK,CAACvE,GAAG,OAAO;AAAA,EACjB,IAAIA,EAAE;AAAA,EACN,MAAMA,EAAE;AAAA,EACR,MAAMA,EAAE;AAAA,EACR,QAAQ,KAAK;AACf,IAAIwE,KAAK,CAACxE,GAAG,GAAG,GAAGI,IAAIyC,GAAE,GAAI,IAAI,CAAA,MAAO7C,EAAE,SAAS,YAAY,EAAE,KAAK,CAAC,MAAM;AAC3E,MAAI;AACJ,MAAI,OAAO,KAAK,UAAU;AACxB,UAAM,IAAI,IAAIqC,GAAE,CAAC;AACjB,MAAE,OAAO,CAAC,GAAG,IAAI;AAAA,EAClB;AACC,QAAI;AACN,QAAM3B,IAAI,CAAA,GAAIQ,IAAI,CAAC,MAAM;AACvB,UAAME,IAAIV,EAAE,EAAE,EAAE;AAChB,WAAOU,IAAI,QAAQ,QAAQA,EAAE,UAAU,IAAI8C,GAAG,YAAYlE,CAAC,EAAE,KAAK,CAACqB,MAAM,IAAIc,GAAGd,GAAG,GAAGjB,CAAC,CAAC;AAAA,EAC5F;AACE,IAAE,OAAO;AAAA,IACP;AAAA,IACA,CAAC,GAAG,EAAE,MAAMgB,QAAQ;AAClB,QAAE,MAAMA,CAAC,KAAKF,EAAEE,CAAC,EAAE,KAAK,CAACC,MAAM;AAC7B,gBAAQ,QAAQ,EAAEA,CAAC,CAAC,EAAE,KAAK,CAACC,MAAM;AAChC,UAAAZ,EAAEU,EAAE,EAAE,IAAI;AAAA,YACR,SAASE;AAAA,YACT,YAAYD;AAAA,UACxB;AAAA,QACA,CAAS;AAAA,MACT,CAAO;AAAA,IACF;AAAA,EACL,GAAK,EAAE,OAAO;AAAA,IACV;AAAA,IACA,CAAC,GAAG,EAAE,MAAMD,QAAQ;AAClB,YAAMC,IAAIX,EAAEU,EAAE,EAAE;AAChB,MAAAC,MAAMA,EAAE,WAAWA,EAAE,QAAO,GAAI,EAAE,oBAAoBA,EAAE,WAAW,QAAO,GAAI,OAAOX,EAAEU,EAAE,EAAE;AAAA,IAC5F;AAAA,EACL;AACA,CAAC;AACD,MAAMqD,GAAG;AAAA,EACP,YAAY,GAAG;AACb,SAAK,UAA0B,oBAAI,IAAG,GAAI,KAAK,aAA6B,oBAAI,IAAK,GAAE,KAAK,SAAS,IAAI9B,EAAC;AAC1G,UAAM,EAAE,QAAQ,EAAC,IAAK,EAAE,IAAI,SAAS;AACrC,SAAK,SAAS;AAAA,EACf;AAAA,EACD,aAAa,GAAG;AACd,UAAM,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAGvC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK;AAClE,WAAO,QAAQ,IAAI,aAAa,iBAAiBA,KAAK,KAAK,OAAO;AAAA,MAChE,KAAK;AAAA,MACL,iCAAiC,KAAK,CAAC,kEAAkE,KAAK,CAAC;AAAA,IAChH,IAAGA;AAAA,EACL;AAAA,EACD,kBAAkB,GAAG,GAAG;AACtB,WAAO,KAAK,WAAW,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,8BAA8B,CAAC,GAAG,MAAM;AAC7F,WAAK,WAAW,OAAO,CAAC;AAAA,IAC9B;AAAA,EACG;AAAA,EACD,iBAAiB,GAAG,GAAG;AACrB,WAAO,KAAK,OAAO;AAAA,MACjB;AAAA,MACA,CAACA,GAAG,MAAM;AACR,YAAI,MAAM,GAAG;AACX,gBAAM,IAAI,KAAK,aAAa,CAAC;AAC7B,YAAE,CAAC;AAAA,QACJ;AAAA,MACF;AAAA,IACP;AAAA,EACG;AAAA,EACD,cAAc,GAAG,GAAG;AAClB,WAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,SAAS,8BAA8B,CAAC,GAAG,MAAM;AAC1F,WAAK,QAAQ,OAAO,CAAC;AAAA,IAC3B;AAAA,EACG;AACH;AAuEG,IAACsE,IAAsB,kBAAC1E,OAAOA,EAAE,OAAO,QAAQA,EAAE,SAAS,UAAUA,EAAE,SAAS,UAAUA,IAAI0E,KAAM,CAAE,CAAA;;;;;;;;;;;;;;;;;;;8CCnvDnGnC,KAAI,CAACzB,GAAG,MAAMG,MAAM,OAAO,KAAK,WAAWH,EAAE,YAAY,CAAC,IAAI,GAAGG,CAAC,IAAIH,EAAE,GAAG,GAAGG,CAAC,GAAG8C,KAAI,MAAM;AAAA,EAChG,cAAc;AACZ,SAAK,OAAO,CAAA,GAAI,KAAK,MAAM,CAACjD,MAAMD,MAAM,KAAK,OAAOC,GAAG,MAAMiD,GAAE,IAAI,GAAGlD,CAAC,CAAC,GAAG,KAAK,OAAO,CAACC,MAAMD,MAAM,KAAK,OAAOC,GAAG,MAAMiD,GAAE,KAAK,GAAGlD,CAAC,CAAC,GAAG,KAAK,QAAQ,CAACC,MAAMD,MAAM,KAAK,OAAOC,GAAG,MAAMiD,GAAE,MAAM,GAAGlD,CAAC,CAAC,GAAG,KAAK,OAAO,CAACC,MAAMD,MAAM,KAAK,OAAOC,GAAG,MAAMiD,GAAE,KAAK,GAAGlD,CAAC,CAAC;AAAA,EAClQ;AAAA,EACD,OAAOC,GAAGD,GAAG;AACX,SAAK,KAAK,QAAQC,CAAC,MAAM,OAAO,KAAK,KAAK,KAAKA,CAAC,GAAGD,EAAG;AAAA,EACvD;AACH;AACA,IAAIS,IAAIyC;AACRzC,EAAE,MAAM,IAAIR,MAAMyB,GAAE,QAAQ,KAAK,GAAGzB,CAAC;AACrCQ,EAAE,OAAO,IAAIR,MAAMyB,GAAE,QAAQ,MAAM,GAAGzB,CAAC;AACvCQ,EAAE,QAAQ,IAAIR,MAAMyB,GAAE,QAAQ,OAAO,GAAGzB,CAAC;AACzCQ,EAAE,OAAO,IAAIR,MAAMyB,GAAE,QAAQ,MAAM,GAAGzB,CAAC;AAClC,MAACP,KAAI,CAACO,MAAM;AACf,MAAI,IAAI,CAAA,GAAIG,GAAGD;AACf,MAAI,OAAOF,KAAK,YAAYA,MAAM;AAChC,WAAOA;AACT,MAAI,MAAM,QAAQA,CAAC,IAAI,CAAA,IAAK,CAAA;AAC5B,OAAKE,KAAKF;AACR,IAAAG,IAAIH,EAAEE,CAAC,GAAG,EAAEA,CAAC,IAAI,OAAOC,KAAK,YAAYA,MAAM,OAAOV,GAAEU,CAAC,IAAIA;AAC/D,SAAO;AACT,GAAGZ,KAAIE;AAsCP,SAASoE,GAAE7D,GAAG;AACZ,MAAI,IAAI;AACR,MAAIA,EAAE,WAAW;AACf,WAAO,EAAE;AACX,WAASG,IAAI,GAAGA,IAAIH,EAAE,QAAQG,KAAK;AACjC,UAAMD,IAAIF,EAAE,WAAWG,CAAC;AACxB,SAAK,KAAK,KAAK,IAAID,GAAG,IAAI,IAAI;AAAA,EAC/B;AACD,SAAO,EAAE;AACX;AAYA,IAAA4D,KAAA,MAAQ;AAAA,EACN,YAAY,GAAG3D,GAAG;AAChB,SAAK,kBAAkB,GAAG,KAAK,gBAAgBA,GAAG,KAAK,QAAQ,IAAI,KAAK,UAAU,QAAQ,QAAS,GAAE,KAAK,OAAO,KAAK,KAAK,KAAK,IAAI;AAAA,EACrI;AAAA,EACD,IAAI,GAAGA,GAAGD,GAAG,GAAG;AACd,SAAK,MAAM,KAAK,EAAE,MAAM,GAAG,SAASC,GAAG,QAAQD,GAAG,MAAM,EAAG,CAAA,GAAG,KAAK;EACpE;AAAA,EACD,OAAO;AACL,SAAK,UAAU,KAAK,QAAQ,KAAK,MAAM;AACrC,YAAM,IAAI,KAAK,MAAM,MAAK;AAC1B,UAAI,GAAG;AACL,YAAIC;AACJ,cAAMD,IAAI,WAAW,MAAM;AACzB,kBAAQ,IAAI,aAAa,gBAAgBM,EAAE;AAAA,YACzC,uBAAuB,KAAK,eAAe,2BAA2B,KAAK,aAAa;AAAA,YACxF;AAAA,UACZ,GAAaL,IAAI,WAAW,MAAM;AACtB,cAAE,OAAO,uBAAuB;AAAA,UAC5C,GAAa,KAAK,aAAa;AAAA,QAC/B,GAAW,KAAK,eAAe,GAAG,IAAI,QAAQ,QAAQ,EAAE,MAAM,EAAE,KAAK,CAACjB,OAAO,aAAagB,CAAC,GAAG,aAAaC,CAAC,GAAGjB,EAAE;AACzG,eAAO,QAAQ,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE;AAAA,UACxC,MAAM,EAAE,KAAK,CAACA,MAAM;AAClB,cAAE,KAAM,GAAE,EAAE,QAAQA,CAAC;AAAA,UACjC,CAAW;AAAA,QACF,EAAC,MAAM,CAACA,OAAO,EAAE,KAAI,GAAI,EAAE,OAAOA,CAAC,GAAG,KAAK,KAAI,EAAG;AAAA,MACpD;AACD,aAAO,QAAQ;IACrB,CAAK;AAAA,EACF;AACH;AACA,MAAM6E,KAAoB,oBAAI;AAC9B,SAASjF,EAAGkB,GAAG,IAAI,KAAKG,IAAI,KAAK;AAC/B,SAAO4D,GAAE,IAAI/D,CAAC,KAAK+D,GAAE,IAAI/D,GAAG,IAAIuB,GAAE,GAAGpB,CAAC,CAAC,GAAG,CAACD,MAAM,IAAI,QAAQ,CAAC,GAAGhB,MAAM;AACrE,UAAMoB,IAAIyD,GAAE,IAAI/D,CAAC;AACjB,IAAAM,EAAE,IAAIJ,GAAG,GAAGhB,GAAG,MAAM;AACnB,MAAAoB,EAAE,MAAM,UAAUyD,GAAE,OAAO/D,CAAC;AAAA,IAClC,CAAK;AAAA,EACL,CAAG;AACH;AACK,MAWMyC,KAAI,CAACzC,GAAG,MAAM;AACvB,QAAMG,IAAI,MAAM,EAAE,iBAAiB,qBAAqB,EAAE,SAAS,GAAGF,KAAK,MAAM;AAC/E,QAAIK,IAAI;AACR,WAAO,MAAM;AACX,MAAIA,MAEJN,EAAE,IAAI,SAAS,EAAE,OAAO,SAAS,sBAAsB;AAAA,QACrD,SAAS;AAAA,MACjB,CAAO,GAAGM,IAAI;AAAA,IACd;AAAA,EACA;AACE,MAAI,CAACH,EAAG;AACN,WAAOF,EAAC;AACV,MAAI,iBAAiB,CAACK,GAAG4C,MAAM;AAC7B,IAAA5C,EAAE;AAAA,MACA,CAACK,MAAMA,EAAE,SAAS,gBAAgBA,EAAE,kBAAkB;AAAA,IAC5D,KAAS,CAACR,EAAC,MAAO+C,EAAE,WAAY,GAAEjD,EAAC;AAAA,EACnC,CAAG,EAAE,QAAQ,GAAG;AAAA,IACZ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,EACb,CAAG;AACH,GAAG2B,KAAI,CAAC5B,GAAG,MAAM;AACf,EAAAA,EAAE,IAAI,SAAS,EAAE,UAAU,SAAS,YAAY,EAAE,KAAK,CAACE,MAAM;AAC5D,IAAAA,EAAE,OAAO,cAAc,0CAA0C,MAAM;AACrE,UAAID,IAAIC,EAAE,MAAM,QAAQ;AAAA,QACtB,CAACgD,GAAGtD,OAAO,CAACA,EAAE,QAAQ,CAACA,EAAE,QAAQA,EAAE,SAAS,UAAUA,EAAE,SAAS,UAAUA,EAAE,WAAW,OAAO,SAAS,UAAU,EAAE,cAAc,eAAeA,EAAE,IAAI,IAAI,KAAKsD,EAAE,KAAKtD,EAAE,IAAI,GAAGsD;AAAA,QAChL,CAAE;AAAA,MACV,GAAShE,IAAI;AACP,UAAI,iBAAiB,CAACgE,GAAGtD,MAAM;AAC7B,QAAAsD,EAAE,QAAQ,CAACvC,MAAM;AACf,cAAIA,EAAE,YAAY;AAChB,kBAAMqD,IAAI,MAAM;AAAA,cACdrD,EAAE;AAAA,YAChB,EAAc,OAAO,CAACP,GAAG,MAAM;AACjB,oBAAMiD,IAAI,EAAE,gBAAgB,EAAE,aAAa,WAAW;AACtD,qBAAOA,KAAKpD,EAAE,QAAQoD,CAAC,IAAI,MAAMjD,EAAE,KAAKiD,CAAC,GAAGjD;AAAA,YAC7C,GAAE,CAAE,CAAA;AACL,YAAAH,IAAIA,EAAE,OAAO,CAACG,MAAM4D,EAAE,QAAQ5D,CAAC,MAAM,EAAE,GAAG,CAAClB,KAAKe,EAAE,WAAW,MAAMf,IAAI,IAAIuD,GAAEzC,GAAG,CAAC,GAAGJ,EAAE,WAAY;AAAA,UACnG;AAAA,QACX,CAAS;AAAA,MACT,CAAO,EAAE,QAAQ,GAAG;AAAA,QACZ,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,WAAW;AAAA,QACX,SAAS;AAAA,QACT,mBAAmB;AAAA,QACnB,uBAAuB;AAAA,MAC/B,CAAO;AAAA,IACP,CAAK;AAAA,EACL,CAAG;AACH,GAAGqE,KAAKrC,IAmBLnB,IAAI,MAAM,KAAK,OAAO,IAAI,KAAK,YAAY,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC;AAC7E,SAASrB,KAAK;AACZ,SAAOqB,EAAG,IAAGA,EAAG,IAAG,MAAMA,EAAC,IAAK,MAAMA,EAAC,IAAK,MAAMA,EAAG,IAAG,MAAMA,EAAG,IAAGA,EAAC,IAAKA;AAC3E;ACpdA,IAAIyD,KAAI,OAAO,gBACXf,KAAI,OAAO,uBACXhB,KAAI,OAAO,UAAU,gBAAgBgC,KAAI,OAAO,UAAU,sBAC1DC,KAAI,CAAClF,GAAGc,GAAGD,MAAMC,KAAKd,IAAIgF,GAAEhF,GAAGc,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAOD,EAAC,CAAE,IAAIb,EAAEc,CAAC,IAAID,GAAGS,IAAI,CAACtB,GAAGc,MAAM;AAC5H,WAASD,KAAKC,MAAMA,IAAI,CAAA;AACtBmC,IAAAA,GAAE,KAAKnC,GAAGD,CAAC,KAAKqE,GAAElF,GAAGa,GAAGC,EAAED,CAAC,CAAC;AAC9B,MAAIoD;AACF,aAASpD,KAAKoD,GAAEnD,CAAC;AACf,MAAAmE,GAAE,KAAKnE,GAAGD,CAAC,KAAKqE,GAAElF,GAAGa,GAAGC,EAAED,CAAC,CAAC;AAChC,SAAOb;AACT,GACI0B,KAAI,CAAC1B,GAAGc,GAAGD,MAAM,IAAI,QAAQ,CAACG,GAAGZ,MAAM;AACzC,MAAIa,IAAI,CAACG,MAAM;AACb,QAAI;AACF,MAAAV,EAAEG,EAAE,KAAKO,CAAC,CAAC;AAAA,IACZ,SAAQK,GAAG;AACV,MAAArB,EAAEqB,CAAC;AAAA,IACJ;AAAA,EACL,GAAKV,IAAI,CAACK,MAAM;AACZ,QAAI;AACF,MAAAV,EAAEG,EAAE,MAAMO,CAAC,CAAC;AAAA,IACb,SAAQK,GAAG;AACV,MAAArB,EAAEqB,CAAC;AAAA,IACJ;AAAA,EACL,GAAKf,IAAI,CAACU,MAAMA,EAAE,OAAOJ,EAAEI,EAAE,KAAK,IAAI,QAAQ,QAAQA,EAAE,KAAK,EAAE,KAAKH,GAAGF,CAAC;AACtE,EAAAL,GAAGG,IAAIA,EAAE,MAAMb,GAAGc,CAAC,GAAG,KAAI,CAAE;AAC9B,CAAC,GAEGI,IAAqB,kBAAClB,OAAOA,EAAE,SAAS,UAAUA,EAAE,QAAQ,SAASA,EAAE,UAAU,WAAWA,IAAIkB,KAAK,CAAA,CAAE,GAAGqB,KAAqB,kBAACvC,OAAOA,EAAE,SAAS,UAAUA,EAAE,iBAAiB,kBAAkBA,EAAE,SAAS,UAAUA,IAAIuC,MAAK,CAAE,CAAA,GAAGuC,IAAqB,kBAAC9E,OAAOA,EAAE,YAAY,aAAaA,EAAE,aAAa,cAAcA,EAAE,aAAa,cAAcA,EAAE,YAAY,aAAaA,IAAI8E,KAAK,CAAE,CAAA;AAChY,MAAMvB,IAAI,CAACvD,GAAGc,GAAGD,GAAGG,IAAI,CAAE,MAAKX,GAAEL,GAAGa,CAAC,EAAE,KAAK,CAACT,OAAO,QAAQ,IAAI,aAAa,gBAAgBA,KAAKiB,EAAE;AAAA,EAClG;AAAA,2BACyBP,CAAC;AAAA,gCACI,KAAK,UAAUD,CAAC,CAAC;AAAA,+BAClB,KAAK,UAAUG,CAAC,CAAC;AAChD,GAAG,CAACC,OAAOwB,GAAEzC,CAAC,GAAGK,GAAEL,GAAGa,CAAC,EAAE,KAAK,CAACE,MAAM;AACnC,MAAIA,GAAG;AACL,YAAQ,IAAI,aAAa,gBAAgBM,EAAE;AAAA,MACzC;AAAA,uCACiCP,CAAC;AAAA,4CACI,KAAK,UAAUD,CAAC,CAAC;AAAA,yCACpB,KAAK,UAAUI,CAAC,CAAC;AAAA,2CACf,KAAK,UAAUD,CAAC,CAAC;AAAA,IAC5D;AACI;AAAA,EACD;AACD,QAAM;AAAA,IACJ,OAAON,IAAI6B,GAAE;AAAA,IACb,QAAQnB,IAAIF,EAAE;AAAA,IACd,UAAUO;AAAA,EACd,IAAMT,GAAGO,IAAIc;AACX,SAAOd,EAAEb,CAAC,EAAEI,CAAC,IAAIqE,GAAElE,GAAGJ,GAAGY,CAAC,GAAGL,MAAMF,EAAE,SAASkE,GAAGpF,GAAGuB,CAAC,IAAI8D,GAAGrF,GAAGoB,GAAGG,CAAC;AACrE,CAAC,GAAG,GAAG+D,IAAI,CAACtF,GAAGc,GAAGD,IAAIK,EAAE,aAAauB,GAAEzC,CAAC,GAAG,OAAOc,KAAK,eAAe,QAAQ,IAAI,aAAa,gBAAgBO,EAAE,KAAK,4DAA4DP,GAAGD,CAAC,GAAG,QAAQ,QAAQ,MAAM,KAAKA,MAAMK,EAAE,SAASqE,GAAGvF,CAAC,EAAE,KAAK,CAACgB,MAAMW,GAAEX,GAAGF,CAAC,CAAC,IAAI0E,GAAGxF,GAAGa,CAAC,EAAE,KAAK,CAACG,MAAMW,GAAEX,GAAGF,CAAC,CAAC,IAAIqD,IAAI,CAACnE,MAAM,CAAC,CAAC,OAAO,QAAQA,CAAC,EAAE,OAAO,CAAC,CAACc,GAAGD,CAAC,MAAM,OAAOA,KAAK,WAAW,EAAE,QAAQgE,KAAI,CAAC7E,MAAM,OAAO,QAAQA,CAAC,EAAE,OAAO,CAAC,CAACc,GAAGD,CAAC,MAAM,OAAOA,KAAK,WAAW,EAAE,QAAQ,CAAC,CAACC,GAAG,EAAE,OAAOD,EAAC,CAAE,MAAM;AAC3d,SAAOA,KAAK,eAAe,OAAOb,EAAEc,CAAC;AACvC,CAAC,GAAG2E,KAAI,CAACzF,GAAGc,MAAM;AAChB,QAAMD,IAAI;AAAA,IACR,QAAQS,EAAEA,EAAE,CAAE,GAAEtB,EAAE,MAAM,GAAGc,EAAE,MAAM;AAAA,IACnC,gBAAgBQ,EAAEA,EAAE,CAAE,GAAEtB,EAAE,cAAc,GAAGc,EAAE,cAAc;AAAA,IAC3D,QAAQQ,EAAEA,EAAE,CAAE,GAAEtB,EAAE,MAAM,GAAGc,EAAE,MAAM;AAAA,EACvC;AACE,SAAO+D,GAAEhE,EAAE,MAAM,GAAGgE,GAAEhE,EAAE,cAAc,GAAGgE,GAAEhE,EAAE,MAAM,GAAGA;AACxD,GAAGwD,KAAI,CAACrE,MAAM,OAAO,QAAQA,CAAC,EAAE,OAAO,CAAC,GAAGgB,MAAM;AAC/C,QAAM,CAACZ,GAAGa,CAAC,IAAID;AACf,SAAO,OAAO,QAAQC,CAAC,EAAE,QAAQ,CAACF,MAAM;AACtC,UAAM,CAACL,GAAG,EAAE,YAAY,EAAG,CAAA,IAAIK;AAC/B,SAAK,EAAE,KAAK,CAAC;AAAA,EACd,CAAA,GAAG;AACN,GAAG,CAAE,CAAA,EAAE,MAAK,EAAG,KAAK,CAAC,GAAGC,MAAM,IAAI,KAAKA,CAAC,EAAE,YAAY,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,MAAO,KAAI2B,GAAG,GAAEnC,KAAI,CAACR,MAAM;AACtG,QAAM;AAAA,IACJ,MAAMc;AAAA,IACN,gBAAgB,EAAE,MAAMD,GAAG,QAAQG,EAAG;AAAA,EAC1C,IAAMhB,EAAE,IAAI,SAAS;AACnB,SAAO;AAAA,IACL,UAAUgB,CAAC;AAAA,IACX,UAAU0E,GAAE1E,IAAIH,CAAC,CAAC;AAAA,IAClB,UAAU6E,GAAE1E,IAAIH,IAAIC,CAAC,CAAC;AAAA,EAC1B;AACA,GAAGb,KAAI,CAACD,MAAM;AACZ,QAAMc,IAAI,IAAI,OAAO,cAAcd,CAAC,iBAAiB,GAAG,GAAGa,IAAI,SAAS,OAAO,MAAMC,CAAC;AACtF,SAAOD,KAAKA,EAAE,CAAC,KAAK,KAAK,MAAMA,EAAE,CAAC,CAAC,KAAK;AAC1C,GAAG8E,KAAI,CAAC3F,GAAGc,GAAGD,MAAM;AAClB,QAAMG,IAAI,GAAGhB,CAAC,IAAI,KAAK,UAAUc,CAAC,EAAE,KAAM,CAAA,IAAIV,IAAI,WAAW,IAAI,KAAKS,CAAC,EAAE,YAAW,CAAE,IAAII,IAAI,UAAUF,IAAI;AAC5G,SAAO,SAAS,SAAS,GAAGC,CAAC,KAAKZ,CAAC,KAAKa,CAAC,KAAKF,CAAC;AACjD,GAAG4D,KAAI,CAAC3E,MAAM;AACZ,QAAM,CAACc,GAAGD,GAAGG,CAAC,IAAIR,GAAER,CAAC,GAAGI,IAAIH,GAAEa,CAAC,KAAK,CAAA,GAAIG,IAAIhB,GAAEY,CAAC,KAAK,CAAA,GAAIE,IAAId,GAAEe,CAAC,KAAK;AACpE,SAAO;AAAA,IACL,QAAQZ;AAAA,IACR,gBAAgBa;AAAA,IAChB,QAAQF;AAAA,EACZ;AACA,GAAG6E,KAAI,CAAC5F,GAAGc,MAAM;AACf,QAAMD,IAAI8D,GAAE3E,CAAC,GAAGgB,IAAIyE,GAAE5E,GAAGC,CAAC,GAAG,CAACV,GAAGa,GAAGF,CAAC,IAAIP,GAAER,CAAC,GAAG,EAAE,QAAQU,GAAG,gBAAgBU,GAAG,QAAQK,EAAG,IAAGT,GAAGO,IAAI8C,GAAEvD,CAAC,GAAG0C,IAAIb,GAAE,EAAE,MAAM,GAAE,CAAE;AAC5H,EAAAgD,GAAEvF,GAAGM,GAAGyD,EAAEzD,CAAC,IAAIa,IAAIiC,CAAC,GAAGmC;AAAA,IACrB1E;AAAA,IACAG;AAAA,IACA+C,EAAE/C,CAAC,IAAIG,IAAIiC;AAAA,EACf,GAAKmC,GAAE5E,GAAGU,GAAG0C,EAAE1C,CAAC,IAAIF,IAAIiC,CAAC;AACzB,GAAGqC,KAAI,CAAC7F,GAAGc,MAAM;AACf,QAAM,CAACD,GAAGG,GAAGZ,CAAC,IAAII,GAAER,CAAC,GAAGiB,IAAIH,EAAE,QAAQD,CAAC,KAAK,MAAME,IAAID,EAAE,QAAQE,CAAC,KAAK,MAAMN,IAAII,EAAE,QAAQV,CAAC,KAAK;AAChG,SAAO;AAAA,IACL,QAAQ,KAAK,MAAMa,CAAC;AAAA,IACpB,gBAAgB,KAAK,MAAMF,CAAC;AAAA,IAC5B,QAAQ,KAAK,MAAML,CAAC;AAAA,EACxB;AACA,GAAGoF,KAAI,CAAC9F,GAAGc,GAAGD,MAAM;AAClB,QAAMG,IAAI6E,GAAE7F,GAAGc,CAAC,GAAGV,IAAIqF,GAAEzE,GAAGH,CAAC,GAAG,CAACI,GAAGF,GAAGL,CAAC,IAAIF,GAAER,CAAC,GAAG,EAAE,QAAQoB,GAAG,gBAAgBK,GAAG,QAAQF,EAAC,IAAKnB;AAChG+D,EAAAA,EAAE/C,CAAC,IAAIN,EAAE,QAAQG,GAAG,KAAK,UAAUG,CAAC,CAAC,IAAIN,EAAE,WAAWG,CAAC,GAAGkD,EAAE1C,CAAC,IAAIX,EAAE,QAAQC,GAAG,KAAK,UAAUU,CAAC,CAAC,IAAIX,EAAE,WAAWC,CAAC,GAAGoD,EAAE5C,CAAC,IAAIT,EAAE,QAAQJ,GAAG,KAAK,UAAUa,CAAC,CAAC,IAAIT,EAAE,WAAWJ,CAAC;AAC7K,GAAG2B,KAAI,OAAO,EAAE,QAAQ,CAAE,GAAE,gBAAgB,IAAI,QAAQ,CAAE,EAAA,IAAK0D,KAAK,CAAC/F,MAAMA,IAAI,CAAC,CAACA,KAAqB,oBAAI,KAAI,IAAK,IAAI,KAAKA,CAAC,IAAI,IAAI2B,KAAI,CAAC3B,GAAGc,MAAM;AACjJ,QAAMD,IAAIb,EAAE,OAAOc,CAAC,KAAKd,EAAE,eAAec,CAAC,KAAKd,EAAE,OAAOc,CAAC;AAC1D,SAAOD,KAAK,OAAO,SAASA,EAAE;AAChC,GAAGsE,KAAI,CAACnF,GAAGc,GAAGD,MAAMA,IAAI;AAAA,EACtB,OAAOb;AAAA,EACP,UAAUc;AAAA,EACV,YAAY,OAAOD,KAAK,WAAW8B,GAAE9B,CAAC,IAAIA;AAC5C,IAAI;AAAA,EACF,OAAOb;AAAA,EACP,UAAUc;AACZ,GAAGkF,KAAI,CAAChG,GAAGc,MAAM;AACf,QAAMD,IAAIW,GAAExB,CAAC;AACb,SAAO,OAAO,QAAQa,CAAC,EAAE,QAAQ,CAAC,CAACG,GAAGZ,CAAC,MAAM;AAC3C,WAAO,QAAQA,CAAC,EAAE,QAAQ,CAAC,CAACa,GAAGF,CAAC,MAAM;AACpC,YAAM,EAAE,YAAYL,GAAG,UAAUU,EAAC,IAAKL;AACvC,OAACgF,GAAGrF,CAAC,KAAKuF,GAAGnF,GAAGM,CAAC,OAAOhB,EAAEa,CAAC,IAAIkE,GAAE,QAAQ/D,GAAGV,CAAC;AAAA,IACnD,CAAK;AAAA,EACF,CAAA,GAAGG;AACN,GAAGR,KAAI,CAACL,GAAGc,MAAMwE,EAAEtF,GAAG,iBAAiBkB,EAAE,MAAM,EAAE;AAAA,EAC/C,CAACL,IAAI,CAACiE,EAAE,SAAS,MAAM,CAAC,CAAChE,KAAKD,EAAE,QAAQC,CAAC,MAAM;AACjD,GAAGmF,KAAK,CAACjG,IAAI,CAAC8E,EAAE,SAAS,GAAGhE,MAAM,CAAC,CAACA,KAAKd,EAAE,QAAQc,CAAC,MAAM,IAAI2B,KAAI,CAACzC,MAAM;AACvE,QAAMc,IAAI6D,GAAE3E,CAAC,GAAGa,IAAIgF,GAAE7F,GAAG,OAAO,YAAY,GAAGgB,IAAI6E,GAAE7F,GAAG,cAAc,GAAGI,IAAIuB,GAAEb,GAAG,eAAe,GAAG,CAACG,GAAGF,GAAGL,CAAC,IAAI;AAAA,IAC9GI;AAAA,IACAD;AAAA,IACAG;AAAA,EACJ,EAAI,IAAI,CAACI,MAAM4E,GAAE5E,GAAGhB,CAAC,CAAC;AACpBwF,EAAAA,GAAE5F,GAAGiB,CAAC,GAAG6E,GAAE9F,GAAG,OAAO,cAAce,CAAC,GAAG+E,GAAE9F,GAAG,OAAO,gBAAgBU,CAAC;AACtE,GAAGiC,KAAI,CAAC3C,IAAI,EAAE,MAAM,GAAE,MAAO;AAC3B,QAAM,EAAE,MAAMc,IAAI,GAAG,OAAOD,IAAI,GAAG,SAASG,IAAI,GAAG,SAASZ,IAAI,EAAC,IAAKJ,GAAGiB,IAAoB,oBAAI;AACjG,SAAOA,EAAE,QAAQA,EAAE,QAAO,IAAKJ,IAAI,KAAK,KAAK,GAAG,GAAGI,EAAE,QAAQA,EAAE,QAAS,IAAGH,IAAI,KAAK,KAAK,KAAK,GAAG,GAAGG,EAAE,QAAQA,EAAE,QAAO,IAAKD,IAAI,KAAK,GAAG,GAAGC,EAAE,QAAQA,EAAE,YAAYb,IAAI,GAAG,GAAGa,EAAE;AACjL,GAAGsE,KAAK,CAACvF,MAAMgE,EAAE,QAAQ,EAAE,MAAMW,GAAE3E,CAAC,CAAC,GAAGoF,KAAK,CAACpF,GAAGc,MAAMkD,EAAE,QAAQ,EAAE,MAAM4B,GAAE5F,GAAGc,CAAC,CAAC,GAAG0E,KAAK,CAACxF,GAAGc,MAAM;AAChG,QAAMD,IAAIC,MAAMI,EAAE,QAAQ,OAAO,eAAe,OAAO;AACvD,SAAO8C,EAAEnD,CAAC,EAAE,MAAMgF,GAAE7F,GAAGa,CAAC,CAAC;AAC3B,GAAGwE,KAAK,CAACrF,GAAGc,GAAGD,MAAM;AACnB,QAAMG,IAAIF,MAAMI,EAAE,QAAQ,OAAO,eAAe,OAAO;AACvD,SAAO8C,EAAEhD,CAAC,EAAE,MAAM8E,GAAE9F,GAAGgB,GAAGH,CAAC,CAAC;AAC9B;AACA,IAAAqF,KAAA,MAAQ;AAAA,EACN,cAAc;AACZ,SAAK,SAAS;AAAA,MACZ,QAAQ,CAAE;AAAA,MACV,gBAAgB,CAAE;AAAA,MAClB,QAAQ,CAAE;AAAA,IAChB;AAAA,EACG;AAAA,EACD,QAAQ9F,GAAGa,GAAG;AACZ,WAAOS,GAAE,MAAM,WAAW,WAAWZ,GAAGD,GAAG,IAAI,IAAI;AACjD,aAAOmD,EAAE,IAAI,EAAE,MAAM;AACnB,cAAMjD,IAAIiF,GAAE,KAAK,QAAQ,CAAClB,EAAE,SAAS,CAAC,GAAG,EAAE,OAAOpE,IAAI6B,GAAE,QAAQ,YAAYnB,EAAG,IAAG;AAClF,QAAAL,EAAEL,CAAC,EAAEI,CAAC,IAAIqE;AAAAA,UACRtE;AAAA,UACAiE,EAAE;AAAA,WACD1D,KAAK,OAAO,SAASA,EAAE,YAAa,MAAKuB,GAAG;AAAA,QACvD,GAAW,KAAK,SAAS5B,GAAG,QAAQ,IAAI,aAAa,gBAAgBM,EAAE;AAAA,UAC7D;AAAA,2BACiBP,CAAC;AAAA,6BACC,KAAK,UAAUD,CAAC,CAAC;AAAA,+BACf,KAAK,UAAU,CAAC,CAAC;AAAA,8BAClB,KAAK,UAAUE,CAAC,CAAC;AAAA,QAC/C;AAAA,MACA,CAAO;AAAA,IACP,CAAK;AAAA,EACF;AAAA,EACD,QAAQD,GAAG;AACT,WAAOY,GAAE,MAAM,MAAM,aAAa;AAChC,aAAOsC,EAAE,IAAI,EAAE,MAAM;AACnB,cAAMnD,IAAImF,GAAE,KAAK,QAAQ,CAAClB,EAAE,SAAS,CAAC;AACtC,gBAAQ,IAAI,aAAa,gBAAgBzD,EAAE;AAAA,UACzC;AAAA,2BACiBP,CAAC;AAAA,8BACE,KAAK,UAAUD,CAAC,CAAC;AAAA,QAC/C;AACQ,cAAMG,IAAIW,GAAEd,GAAGC,CAAC;AAChB,eAAO,KAAK,SAASD,GAAGG;AAAA,MAChC,CAAO;AAAA,IACP,CAAK;AAAA,EACF;AAAA,EACD,WAAWF,GAAG;AACZ,WAAOY,GAAE,MAAM,MAAM,aAAa;AAChC,aAAOsC,EAAE,IAAI,EAAE,MAAM;AACnB,cAAMnD,IAAImF,GAAE,KAAK,QAAQ,CAAClB,EAAE,SAAS,CAAC;AACtC,eAAOjE,EAAE,OAAOC,CAAC,GAAG,OAAOD,EAAE,eAAeC,CAAC,GAAG,OAAOD,EAAE,OAAOC,CAAC,GAAG,KAAK,SAASD,GAAG,QAAQ,IAAI,aAAa,gBAAgBQ,EAAE;AAAA,UAC9H;AAAA,2BACiBP,CAAC;AAAA,8BACE,KAAK,UAAUD,CAAC,CAAC;AAAA,QAC/C;AAAA,MACA,CAAO;AAAA,IACP,CAAK;AAAA,EACF;AAAA,EACD,QAAQ;AACN,WAAOa,GAAE,MAAM,MAAM,aAAa;AAChC,aAAO,QAAQ;IACrB,CAAK;AAAA,EACF;AACH;AACA,MAAMyE,GAAG;AAAA,EACP,cAAc;AACZ,SAAK,UAAU,IAAIvD,GAAC,GAAI,KAAK,UAAU,IAAIA,GAAG,GAAE,KAAK,QAAQ,IAAIA,GAAC;AAAA,EACnE;AACH;AACA,MAAMrC,KAAI,CAACP,GAAGc,GAAGD,MAAMG,MAAM;AAC3B,QAAMZ,IAAI,IAAIJ,EAAE,IAAI,cAAc,EAAE,QAAQ,eAAe,KAAKa,CAAC;AACjE,UAAQC,GAAC;AAAA,IACP,KAAK;AACH,cAAQ,KAAKV,GAAG,GAAGY,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,KAAKZ,GAAG,GAAGY,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,MAAMZ,GAAG,GAAGY,CAAC;AACrB;AAAA,EACH;AACH,GAAGoF,KAAK,CAACpG,MAAM;AACb,QAAMc,IAAId,EAAE,aAAaA;AACzB,SAAO;AAAA,IACL,MAAM,CAACa,MAAMG,MAAMT,GAAEO,GAAG,QAAQD,GAAG,GAAGG,CAAC;AAAA,IACvC,MAAM,CAACH,MAAMG,MAAMT,GAAEO,GAAG,WAAWD,GAAG,GAAGG,CAAC;AAAA,IAC1C,OAAO,CAACH,MAAMG,MAAMT,GAAEO,GAAG,SAASD,GAAG,GAAGG,CAAC;AAAA,EAC7C;AACA;AACA,IAAIqF,KAAqB,kBAACrG,OAAOA,EAAE,iBAAiB,kBAAkBA,EAAE,SAAS,UAAUA,IAAIqG,MAAK,CAAE,CAAA,GAAGtC,IAAqB,kBAAC/D,OAAOA,EAAE,MAAM,OAAOA,EAAE,OAAO,QAAQA,IAAI+D,KAAK,CAAE,CAAA;AACjL,MAAMuC,KAAK,CAACtG,GAAGc,GAAGD,GAAGG,MAAM;AACzB,MAAI;AACF,UAAMZ,IAAI,IAAIU,EAAED,GAAGG,CAAC;AACpB,WAAO;AAAA,MACL,MAAMhB;AAAA,MACN,QAAQ,CAACiB,GAAGF,MAAM;AAChB,YAAIL;AACJ,eAAON,EAAEa,CAAC,MAAMP,IAAIN,EAAEa,CAAC,EAAE,KAAKb,GAAGW,CAAC,IAAI,QAAQ,QAAQL,CAAC;AAAA,MACxD;AAAA,MACD,aAAa,MAAMN;AAAA,IACzB;AAAA,EACG,SAAQA,GAAG;AACV,QAAIA,EAAE,WAAWA,EAAE,QAAQ,QAAQ,sBAAsB,KAAK;AAC5D,aAAO;AAAA,QACL,MAAMJ;AAAA,QACN,QAAQ,CAACiB,MAAM;AACb,cAAIF;AACJ,iBAAOE,MAAM,iBAAiBF,IAAID,EAAED,GAAGG,CAAC,IAAI,QAAQ,QAAQD,CAAC;AAAA,QAC9D;AAAA,QACD,aAAa,MAAMD;AAAA,MAC3B;AACI,UAAMV;AAAA,EACP;AACH;AACA,SAASmG,GAAEvG,GAAGc,GAAG;AACf,SAAO,OAAOd,KAAK,cAAcc,IAAId;AACvC;AACA,MAAMwG,GAAG;AAAA,EACP,YAAY1F,IAAI,IAAI;AAClB,SAAK,OAAOA;AAAA,EACb;AAAA,EACD,cAAcA,GAAGD,GAAGG,GAAG;AACrB,QAAIZ;AACJ,WAAOS,KAAK,aAAaT,IAAI;AAAA,MAC3B,OAAOiG,GAAE;AAAA,MACT,OAAOtC,EAAE;AAAA,MACT,aAAa;AAAA,MACb,iBAAiBlD;AAAA,IAClB,IAAGT,IAAI;AAAA,MACN,OAAOmG,GAAE1F,EAAE,OAAOwF,GAAE,MAAM;AAAA,MAC1B,OAAOE,GAAE1F,EAAE,OAAOkD,EAAE,IAAI;AAAA,MACxB,aAAalD,EAAE;AAAA,MACf,iBAAiBG;AAAA,IACvB;AACI,QAAIC,IAAI,KAAK;AACb,UAAMF,IAAID,EAAE,MAAM,GAAG;AACrB,WAAOC,EAAE,QAAQ,CAACL,GAAGU,MAAM;AACzB,MAAAA,MAAML,EAAE,SAAS,IAAIE,EAAEP,CAAC,MAAMO,EAAEP,CAAC,IAAI,MAAMN,KAAKa,IAAI,KAAK,KAAKP,CAAC,IAAI,KAAK,KAAKA,CAAC,KAAK;IACpF,CAAA,GAAG;AAAA,EACL;AAAA,EACD,MAAM;AACJ,WAAO,KAAK;AAAA,EACb;AACH;AACA,MAAMgC,KAAI,CAAC1C,MAAM;AACf,QAAMc,IAAI,IAAI0F,GAAG,CAAA,CAAE;AACnB,SAAOxG,EAAEc,CAAC,GAAGA,EAAE,IAAG;AACpB;AACA4B,GAAE,CAAC1C,MAAM;AACP,EAAAA,EAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAOqG,GAAE,gBAAgB,OAAOtC,EAAE,IAAK;AAAA,IACzC,CAACjD,MAAM,CAACD,GAAGG,MAAM;AACf,MAAAF,EAAE,UAAU,IAAI,QAAQ,EAAED,CAAC,IAAIG;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAO+C,EAAE,IAAK;AAAA,IAChB,CAACjD,MAAM,CAACD,MAAM;AACZ,MAAAC,EAAE,UAAU,SAAS,SAASD,CAAC;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOkD,EAAE,KAAK,aAAa,CAAC,IAAI,EAAG;AAAA,IACrC,CAACjD,MAAM,CAACD,MAAM;AACZ,MAAAC,EAAE,OAAO;AAAA,QACP;AAAA,QACAD;AAAA,QACA,EAAE,SAAS,GAAI;AAAA,MAChB,GAAEC,EAAE,UAAU,SAAS,aAAaD,CAAC;AAAA,IACvC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOkD,EAAE,IAAK;AAAA,IAChB,CAACjD,MAAM,CAACD,GAAGG,GAAGZ,MAAM;AAClB,YAAM,EAAE,WAAWa,EAAG,IAAGH;AACzB,UAAIC,IAAI,MAAML,IAAIG,GAAGO,IAAIJ;AACzB,aAAOH,KAAK,aAAaE,IAAIF,GAAGH,IAAIM,GAAGI,IAAIhB;AAC3C,YAAMqB,IAAI,CAACF,MAAM;AACf,cAAM,EAAE,yBAAyBiC,EAAG,IAAG1C,EAAE,UAAU,IAAI,qBAAqB,GAAG2F,IAAIjD,IAAIA;AAAA,UACrFpC,KAAK,CAAE;AAAA,UACPL;AAAA,UACAD,EAAE;AAAA,UACFJ;AAAA,QACD,IAAGM;AACJ,YAAI;AACF,gBAAMwB,IAAI8D;AAAA,YACRvF;AAAA,YACAL;AAAA,YACAO;AAAA,YACAwF;AAAA,UACZ;AACU,UAAAxF,EAAE,IAAI,UAAU,EAAE,KAAKuB,CAAC,GAAGjB,KAAKiB,EAAE,OAAO,cAAc,IAAI;AAAA,QAC5D,SAAQA,GAAG;AACV,UAAA4D,GAAGtF,CAAC,EAAE,KAAK,kCAAkC0B,CAAC;AAAA,QAC/C;AAAA,MACT;AACM,MAAA1B,EAAE,UAAU,IAAI,WAAW,IAAIW,EAAE,EAAE,IAAIX,EAAE,OAAO,cAAc,2BAA2B,MAAMW,EAAE,EAAE,CAAC;AAAA,IACrG;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAACX,MAAM,CAACD,GAAGG,MAAM;AACf,MAAAF,EAAE,UAAU,SAASD,GAAGG,CAAC;AAAA,IAC1B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAACF,MAAM,CAACD,GAAGG,MAAM;AACf,MAAAF,EAAE,UAAU,cAAcD,GAAGG,CAAC;AAAA,IAC/B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAACF,MAAM,CAACD,GAAGG,MAAM;AACf,MAAAF,EAAE,UAAU,gBAAgBD,GAAGG,CAAC;AAAA,IACjC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAACF,MAAM,CAACD,GAAGG,MAAM;AACf,MAAAF,EAAE,UAAU,MAAMD,GAAGG,CAAC;AAAA,IACvB;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAE;AAAA,IACF,CAACF,MAAM,CAACD,MAAM;AACZ,MAAAC,EAAE,UAAU,SAAS,OAAOD,CAAC;AAAA,IAC9B;AAAA,EACL;AACA,CAAC;AACU6B,GAAE,CAAC1C,MAAM;AAClB,EAAAA,EAAE,cAAc,WAAW,CAACc,MAAM,CAACD,IAAI,OAAO;AAC5C,UAAM,EAAE,SAASG,EAAG,IAAGH;AACvB,QAAI,OAAOG,KAAK,aAAa;AAC3B,UAAI,OAAOA,KAAK,YAAY,OAAOA,KAAK,YAAY,CAAC,MAAM,QAAQA,CAAC,GAAG;AACrE,gBAAQ,IAAI,aAAa,gBAAgBK,EAAE;AAAA,UACzC;AAAA,0CACgC,KAAK,UAAUL,CAAC,CAAC;AAAA,QAC3D;AACQ;AAAA,MACD;AACD,UAAI,MAAM,QAAQA,CAAC,KAAK,CAACA,EAAE;AAAA,QACzB,CAACC,MAAM,OAAOA,KAAK,YAAY,OAAOA,KAAK;AAAA,MACnD,GAAS;AACD,gBAAQ,IAAI,aAAa,gBAAgBI,EAAE;AAAA,UACzC;AAAA,0CACgC,KAAK,UAAUL,CAAC,CAAC;AAAA,QAC3D;AACQ;AAAA,MACD;AACD,YAAMZ,IAAI;AAAA,QACR0E,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,QACFA,EAAE;AAAA,MACV,EAAQ,OAAO,CAAC7D,GAAGF,GAAGL,MAAM,OAAOM,KAAK,WAAWA,IAAID,IAAI,OAAOC,KAAK,WAAWN,EAAE,QAAQM,CAAC,IAAI,IAAID,IAAI,MAAM,QAAQC,CAAC,IAAIA,EAAE,UAAU,CAACI,MAAMA,MAAML,IAAI,KAAKK,MAAMH,CAAC,IAAI,KAAK,EAAE;AAC1K,aAAOb,EAAE,QAAQ0E,EAAE,SAAS,MAAM,OAAO,QAAQ,IAAI,aAAa,gBAAgBzD,EAAE;AAAA,QAClF,6EAA6EyD,EAAE,SAAS,0CAA0CA,EAAE,SAAS;AAAA,0CAC3G,KAAK,UAAU9D,CAAC,CAAC;AAAA,MACpD,GAAEZ,EAAE,QAAQ0E,EAAE,SAAS,IAAIvB;AAAA,QAC1BzC,EAAE;AAAA,QACF;AAAA,QACAgE,EAAE;AAAA,QACF;AAAA,UACE,QAAQ5D,EAAE;AAAA,UACV,OAAOqB,GAAE;AAAA,UACT,UAAU,EAAE,MAAM,IAAK;AAAA,QACxB;AAAA,MACT,EAAQ,KAAK,CAACtB,MAAMA,EAAEb,CAAC,CAAC,EAAE,KAAK,MAAM;AAC7BqC,QAAAA,GAAE3B,EAAE,SAAS,GAAGA,EAAE,OAAO,SAAS,0BAA0BV,CAAC;AAAA,MACrE,CAAO;AAAA,IACF;AAAA,EACL,CAAG;AACH,CAAC;;;;;;;;;;8CCxZK4D,KAAI,CAAChE,GAAG,GAAG,MAAMgB,MAAM;AAC3B,QAAMC,IAAI,IAAIjB,EAAE,IAAI,cAAc,EAAE,QAAQ,eAAe,KAAK,CAAC;AACjE,UAAQ,GAAC;AAAA,IACP,KAAK;AACH,cAAQ,KAAKiB,GAAG,GAAGD,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,KAAKC,GAAG,GAAGD,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,MAAMC,GAAG,GAAGD,CAAC;AACrB;AAAA,EACH;AACH,GAAGR,KAAI,CAACR,MAAM;AACZ,QAAM,IAAIA,EAAE,aAAaA;AACzB,SAAO;AAAA,IACL,MAAM,CAAC,MAAMgB,MAAMgD,GAAE,GAAG,QAAQ,GAAG,GAAGhD,CAAC;AAAA,IACvC,MAAM,CAAC,MAAMA,MAAMgD,GAAE,GAAG,WAAW,GAAG,GAAGhD,CAAC;AAAA,IAC1C,OAAO,CAAC,MAAMA,MAAMgD,GAAE,GAAG,SAAS,GAAG,GAAGhD,CAAC;AAAA,EAC7C;AACA;AAqBA,IAAI8D,KAAqB,kBAAC9E,OAAOA,EAAE,iBAAiB,kBAAkBA,EAAE,SAAS,UAAUA,IAAI8E,MAAK,CAAE,CAAA,GAAGrD,IAAqB,kBAACzB,OAAOA,EAAE,MAAM,OAAOA,EAAE,OAAO,QAAQA,IAAIyB,KAAK,CAAE,CAAA;AACjL,MAAMiE,KAAI,CAAC1F,GAAG,GAAG,GAAGgB,MAAM;AACxB,MAAI;AACF,UAAMC,IAAI,IAAI,EAAE,GAAGD,CAAC;AACpB,WAAO;AAAA,MACL,MAAMhB;AAAA,MACN,QAAQ,CAACe,GAAGX,MAAM;AAChB,YAAI;AACJ,eAAOa,EAAEF,CAAC,MAAM,IAAIE,EAAEF,CAAC,EAAE,KAAKE,GAAGb,CAAC,IAAI,QAAQ,QAAQ,CAAC;AAAA,MACxD;AAAA,MACD,aAAa,MAAMa;AAAA,IACzB;AAAA,EACG,SAAQA,GAAG;AACV,QAAIA,EAAE,WAAWA,EAAE,QAAQ,QAAQ,sBAAsB,KAAK;AAC5D,aAAO;AAAA,QACL,MAAMjB;AAAA,QACN,QAAQ,CAACe,MAAM;AACb,cAAIX;AACJ,iBAAOW,MAAM,iBAAiBX,IAAI,EAAE,GAAGY,CAAC,IAAI,QAAQ,QAAQZ,CAAC;AAAA,QAC9D;AAAA,QACD,aAAa,MAAM;AAAA,MAC3B;AACI,UAAMa;AAAA,EACP;AACH;AACA,SAAS8C,GAAE/D,GAAG,GAAG;AACf,SAAO,OAAOA,KAAK,cAAc,IAAIA;AACvC;AACA,MAAM6F,GAAE;AAAA,EACN,YAAY,IAAI,IAAI;AAClB,SAAK,OAAO;AAAA,EACb;AAAA,EACD,cAAc,GAAG,GAAG7E,GAAG;AACrB,QAAIC;AACJ,WAAO,KAAK,aAAaA,IAAI;AAAA,MAC3B,OAAO6D,GAAE;AAAA,MACT,OAAOrD,EAAE;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IAClB,IAAGR,IAAI;AAAA,MACN,OAAO8C,GAAE,EAAE,OAAOe,GAAE,MAAM;AAAA,MAC1B,OAAOf,GAAE,EAAE,OAAOtC,EAAE,IAAI;AAAA,MACxB,aAAa,EAAE;AAAA,MACf,iBAAiBT;AAAA,IACvB;AACI,QAAID,IAAI,KAAK;AACb,UAAMX,IAAI,EAAE,MAAM,GAAG;AACrB,WAAOA,EAAE,QAAQ,CAAC,GAAG,MAAM;AACzB,YAAMA,EAAE,SAAS,IAAIW,EAAE,CAAC,MAAMA,EAAE,CAAC,IAAI,MAAME,KAAKF,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK;IACpF,CAAA,GAAG;AAAA,EACL;AAAA,EACD,MAAM;AACJ,WAAO,KAAK;AAAA,EACb;AACH;AACA,MAAMsF,KAAI,CAACrG,MAAM;AACf,QAAM,IAAI,IAAI6F,GAAE,CAAA,CAAE;AAClB,SAAO7F,EAAE,CAAC,GAAG,EAAE,IAAG;AACpB;AACAqG,GAAE,CAACrG,MAAM;AACP,EAAAA,EAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAO8E,GAAE,gBAAgB,OAAOrD,EAAE,IAAK;AAAA,IACzC,CAAC,MAAM,CAAC,GAAGT,MAAM;AACf,QAAE,UAAU,IAAI,QAAQ,EAAE,CAAC,IAAIA;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOS,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,SAAS,CAAC;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,KAAK,aAAa,CAAC,IAAI,EAAG;AAAA,IACrC,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,EAAE,SAAS,GAAI;AAAA,MAChB,GAAE,EAAE,UAAU,SAAS,aAAa,CAAC;AAAA,IACvC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,GAAGT,GAAGC,MAAM;AAClB,YAAM,EAAE,WAAWF,EAAG,IAAG;AACzB,UAAIX,IAAI,MAAM,IAAI,GAAG,IAAIY;AACzB,aAAO,KAAK,aAAaZ,IAAI,GAAG,IAAIY,GAAG,IAAIC;AAC3C,YAAMC,IAAI,CAAC,MAAM;AACf,cAAM,EAAE,yBAAyBI,EAAG,IAAG,EAAE,UAAU,IAAI,qBAAqB,GAAGsB,IAAItB,IAAIA;AAAA,UACrF,KAAK,CAAE;AAAA,UACPlB;AAAA,UACA,EAAE;AAAA,UACF;AAAA,QACD,IAAGY;AACJ,YAAI;AACF,gBAAMO,IAAImE;AAAAA,YACRtF;AAAA,YACA;AAAA,YACAW;AAAA,YACA6B;AAAA,UACZ;AACU,UAAA7B,EAAE,IAAI,UAAU,EAAE,KAAKQ,CAAC,GAAG,KAAKA,EAAE,OAAO,cAAc,IAAI;AAAA,QAC5D,SAAQA,GAAG;AACVf,UAAAA,GAAE,CAAC,EAAE,KAAK,kCAAkCe,CAAC;AAAA,QAC9C;AAAA,MACT;AACM,QAAE,UAAU,IAAI,WAAW,IAAIL,EAAE,EAAE,IAAI,EAAE,OAAO,cAAc,2BAA2B,MAAMA,EAAE,EAAE,CAAC;AAAA,IACrG;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGF,MAAM;AACf,QAAE,UAAU,SAAS,GAAGA,CAAC;AAAA,IAC1B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,cAAc,GAAGA,CAAC;AAAA,IAC/B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,gBAAgB,GAAGA,CAAC;AAAA,IACjC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAGA,MAAM;AACf,QAAE,UAAU,MAAM,GAAGA,CAAC;AAAA,IACvB;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAE;AAAA,IACF,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,OAAO,CAAC;AAAA,IAC9B;AAAA,EACL;AACA,CAAC;AA6FD,SAAS2D,GAAE3E,GAAG;AACZ,QAAM,IAAI,CAAA;AACV,SAAO,CAAE,EAAC,OAAO,KAAKA,EAAE,YAAY,CAAC,MAAM,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,IAAIA,EAAE,aAAa,CAAC,CAAC,GAAG;AAC3I;AACA,MAAMgG,KAAI,CAAChG,GAAG,GAAG,MAAM;AACrB,QAAMgB,IAAI2D,GAAE3E,CAAC;AACb,IAAE;AAAA,IACA,kBAAkBA;AAAA,IAClB,WAAW;AAAA,IACX,MAAMgB;AAAA,EACV,CAAG;AACH;AACA,SAASwC,GAAExD,GAAG,GAAG,GAAG;AAClB,EAAAA,EAAE,QAAQ,CAACgB,MAAM;AACf,IAAAA,EAAE,QAAQ,aAAa,WAAW,MAAM,SAASgF,GAAEhF,GAAG,GAAG,CAAC,IAAIA,EAAE,iBAAiB,GAAG,CAACC,MAAM;AACzF,MAAAA,EAAE,eAAc,GAAI+E,GAAEhF,GAAG,GAAG,CAAC;AAAA,IAC9B,CAAA,GAAGA,EAAE,QAAQ,YAAY;AAAA,EAC9B,CAAG;AACH;AACA,SAASyF,GAAEzG,GAAG,GAAG,GAAG;AAClB,QAAMgB,IAAIhB,EAAE,UAAU,IAAI,uBAAuB;AACjD,EAAAgB,KAAKA,EAAE,OAAO,UAAU,sCAAsC,CAACD,GAAGX,MAAM;AACtEoD,IAAAA;AAAAA,MACEpD,EAAE;AAAA,MACF;AAAA,MACA;AAAA,IACN;AAAA,EACA,CAAG;AACD,QAAMa,IAAIjB,EAAE,UAAU,IAAI,iBAAiB;AAC3C,EAAAiB,KAAKuC;AAAAA,IACHvC;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAWUoF,GAAE,CAACrG,MAAM;AACjB,EAAAA,EAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAO8E,GAAE,gBAAgB,OAAOrD,EAAE,IAAK;AAAA,IACzC,CAAC,MAAM,CAAC,MAAM;AACZ,YAAM,EAAE,WAAWT,EAAG,IAAG,GAAGC,IAAID,EAAE;AAClC,MAAAA,EAAE,IAAI,eAAe,EAAE,QAAQ,EAAEC,CAAC,IAAIA,EAAE,OAAO,cAAc,mBAAmB,MAAM;AACpF,UAAEA,CAAC;AAAA,MACX,CAAO;AAAA,IACF;AAAA,EACL;AACA,CAAC;ACnUI,MAAChB,KAAI,CAAC,GAAG,GAAG,MAAM,MAAM;AAC3B,QAAMgB,IAAI,IAAI,EAAE,IAAI,cAAc,EAAE,QAAQ,eAAe,KAAK,CAAC;AACjE,UAAQ,GAAC;AAAA,IACP,KAAK;AACH,cAAQ,KAAKA,GAAG,GAAG,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,KAAKA,GAAG,GAAG,CAAC;AACpB;AAAA,IACF,KAAK;AACH,cAAQ,MAAMA,GAAG,GAAG,CAAC;AACrB;AAAA,EACH;AACH,GAAGC,KAAI,CAAC,MAAM;AACZ,QAAM,IAAI,EAAE,aAAa;AACzB,SAAO;AAAA,IACL,MAAM,CAAC,MAAM,MAAMjB,GAAE,GAAG,QAAQ,GAAG,GAAG,CAAC;AAAA,IACvC,MAAM,CAAC,MAAM,MAAMA,GAAE,GAAG,WAAW,GAAG,GAAG,CAAC;AAAA,IAC1C,OAAO,CAAC,MAAM,MAAMA,GAAE,GAAG,SAAS,GAAG,GAAG,CAAC;AAAA,EAC7C;AACA;AAmZA,IAAI2C,KAAqB,kBAAC,OAAO,EAAE,iBAAiB,kBAAkB,EAAE,SAAS,UAAU,IAAIA,MAAK,CAAE,CAAA,GAAGnB,IAAqB,kBAAC,OAAO,EAAE,MAAM,OAAO,EAAE,OAAO,QAAQ,IAAIA,KAAK,CAAE,CAAA;AAiEjL,MAAM1B,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM;AACzB,MAAI;AACF,UAAM,IAAI,IAAI,EAAE,GAAG,CAAC;AACpB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,QAAQ,CAAC,GAAG,MAAM;AAChB,YAAI;AACJ,eAAO,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,QAAQ,QAAQ,CAAC;AAAA,MACxD;AAAA,MACD,aAAa,MAAM;AAAA,IACzB;AAAA,EACG,SAAQ,GAAG;AACV,QAAI,EAAE,WAAW,EAAE,QAAQ,QAAQ,sBAAsB,KAAK;AAC5D,aAAO;AAAA,QACL,MAAM;AAAA,QACN,QAAQ,CAAC,MAAM;AACb,cAAI;AACJ,iBAAO,MAAM,iBAAiB,IAAI,EAAE,GAAG,CAAC,IAAI,QAAQ,QAAQ,CAAC;AAAA,QAC9D;AAAA,QACD,aAAa,MAAM;AAAA,MAC3B;AACI,UAAM;AAAA,EACP;AACH;AACA,SAASM,GAAE,GAAG,GAAG;AACf,SAAO,OAAO,KAAK,cAAc,IAAI;AACvC;AACA,MAAMT,GAAG;AAAA,EACP,YAAY,IAAI,IAAI;AAClB,SAAK,OAAO;AAAA,EACb;AAAA,EACD,cAAc,GAAG,GAAG,GAAG;AACrB,QAAI;AACJ,WAAO,KAAK,aAAa,IAAI;AAAA,MAC3B,OAAOgD,GAAE;AAAA,MACT,OAAOnB,EAAE;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IAClB,IAAG,IAAI;AAAA,MACN,OAAOpB,GAAE,EAAE,OAAOuC,GAAE,MAAM;AAAA,MAC1B,OAAOvC,GAAE,EAAE,OAAOoB,EAAE,IAAI;AAAA,MACxB,aAAa,EAAE;AAAA,MACf,iBAAiB;AAAA,IACvB;AACI,QAAI,IAAI,KAAK;AACb,UAAM,IAAI,EAAE,MAAM,GAAG;AACrB,WAAO,EAAE,QAAQ,CAAC,GAAGJ,MAAM;AACzB,MAAAA,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK;IACpF,CAAA,GAAG;AAAA,EACL;AAAA,EACD,MAAM;AACJ,WAAO,KAAK;AAAA,EACb;AACH;AACK,MAACnB,KAAK,CAAC,MAAM;AAChB,QAAM,IAAI,IAAIN,GAAG,CAAA,CAAE;AACnB,SAAO,EAAE,CAAC,GAAG,EAAE,IAAG;AACpB;AAAQM,GAAG,CAAC,MAAM;AAChB,IAAE;AAAA,IACA;AAAA,IACA,EAAE,OAAO0C,GAAE,gBAAgB,OAAOnB,EAAE,IAAK;AAAA,IACzC,CAAC,MAAM,CAAC,GAAG,MAAM;AACf,QAAE,UAAU,IAAI,QAAQ,EAAE,CAAC,IAAI;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,SAAS,CAAC;AAAA,IAChC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,KAAK,aAAa,CAAC,IAAI,EAAG;AAAA,IACrC,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,EAAE,SAAS,GAAI;AAAA,MAChB,GAAE,EAAE,UAAU,SAAS,aAAa,CAAC;AAAA,IACvC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,EAAE,OAAOA,EAAE,IAAK;AAAA,IAChB,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM;AAClB,YAAM,EAAE,WAAW,EAAG,IAAG;AACzB,UAAI,IAAI,MAAM,IAAI,GAAGJ,IAAI;AACzB,aAAO,KAAK,aAAa,IAAI,GAAG,IAAI,GAAGA,IAAI;AAC3C,YAAM,IAAI,CAACyD,MAAM;AACf,cAAM,EAAE,yBAAyBf,EAAG,IAAG,EAAE,UAAU,IAAI,qBAAqB,GAAGoB,IAAIpB,IAAIA;AAAA,UACrF1C,KAAK,CAAE;AAAA,UACP;AAAA,UACA,EAAE;AAAA,UACF;AAAA,QACD,IAAG;AACJ,YAAI;AACF,gBAAM2E,IAAIjG;AAAA,YACR;AAAA,YACA;AAAA,YACA;AAAA,YACAoF;AAAA,UACZ;AACU,YAAE,IAAI,UAAU,EAAE,KAAKa,CAAC,GAAGlB,KAAKkB,EAAE,OAAO,cAAc,IAAI;AAAA,QAC5D,SAAQA,GAAG;AACV9E,UAAAA,GAAE,CAAC,EAAE,KAAK,kCAAkC8E,CAAC;AAAA,QAC9C;AAAA,MACT;AACM,QAAE,UAAU,IAAI,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,cAAc,2BAA2B,MAAM,EAAE,EAAE,CAAC;AAAA,IACrG;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAG,MAAM;AACf,QAAE,UAAU,SAAS,GAAG,CAAC;AAAA,IAC1B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAG,MAAM;AACf,QAAE,UAAU,cAAc,GAAG,CAAC;AAAA,IAC/B;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAG,MAAM;AACf,QAAE,UAAU,gBAAgB,GAAG,CAAC;AAAA,IACjC;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAC,MAAM,CAAC,GAAG,MAAM;AACf,QAAE,UAAU,MAAM,GAAG,CAAC;AAAA,IACvB;AAAA,EACL,EAAI;AAAA,IACA;AAAA,IACA,CAAE;AAAA,IACF,CAAC,MAAM,CAAC,MAAM;AACZ,QAAE,UAAU,SAAS,OAAO,CAAC;AAAA,IAC9B;AAAA,EACL;AACA,CAAC;AAsCD,IAAIU,KAAsB,kBAAC,OAAO,EAAE,aAAa,cAAc,EAAE,UAAU,WAAW,EAAE,YAAY,aAAa,EAAE,eAAe,gBAAgB,EAAE,cAAc,eAAe,IAAIA,MAAM,CAAA,CAAE;AA6G7L,MAAMC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAY,GAAG;AACb,SAAK,YAAY,GAAG,KAAK,SAAS,EAAE,IAAI,SAAS,GAAG,KAAK,WAAW,EAAE,IAAI,WAAW,GAAG,KAAK,SAAS,KAAK,OAAO,QAAQ,KAAK,OAAO,OAAO,UAAU,mBAAmB,CAAC,GAAG,MAAM;AAClL,WAAK,WAAW;AAAA,IACtB,CAAK;AAAA,EACF;AACH;AChxBA,MAAMC,KAAoB,CAACC,MAAmC;AACtD,QAAAC,IAAgB,CAACC,GAAsBC,MAAqB;AAChE,IAAKD,MAIDC,IACMD,EAAA,UAAU,IAAI,aAAa,IAE3BA,EAAA,UAAU,OAAO,aAAa;AAAA,EACxC,GAGIE,IAAgB,CAACnG,MAAqB;AACtC,IAAAA,EAAE,QAAQ,QACZgG,EAAcD,GAAmB,EAAI,IAGnC/F,EAAE,QAAQ,WACV,SAAS,iBACT,SAAS,cAAc,UAAU,SAAS,oBAAoB,KAGhEgG,EAAcD,GAAmB,EAAK;AAAA,EACxC,GAGIK,IAAc,CAAC5E,MAAmB;AACtC,IACE,SAAS,iBACT,SAAS,cAAc,UAAU,SAAS,oBAAoB,KAC9D,SAAS,cAAc,UAAU,SAAS,aAAa,KAIzDwE,EAAcD,GAAmB,EAAK;AAAA,EAAA;AAG/B,kBAAA,iBAAiB,WAAWI,CAAa,GACzC,SAAA,iBAAiB,SAASC,CAAW,GAEvC,MAAM;AACF,aAAA,oBAAoB,WAAWD,CAAa,GAC5C,SAAA,oBAAoB,SAASC,CAAW;AAAA,EAAA;AAErD;AAUgB,SAAAC,GACdJ,GACAK,GACA;AACM,QAAA;AAAA;AAAA,IAEJ,YAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,WAAAC,IAAY;AAAA,IACZ,SAAAC,IAAU;AAAA,EACR,IAAAJ;AAEI,SAAAL,EAAA,UAAU,IAAI,oBAAoB,GAC1CA,EAAQ,UAAU,IAAI,cAAcM,CAAU,EAAE,GAE5CC,EAAM,UACAP,EAAA,UAAU,IAAI,kBAAkB,GAGtCQ,EAAU,UAAU,CAACR,EAAQ,aAAa,YAAY,KAChDA,EAAA,aAAa,cAAcQ,CAAS,GAG1CA,EAAU,UAAU,CAACR,EAAQ,aAAa,UAAU,KAC9CA,EAAA,aAAa,YAAY,GAAG,GAGlCS,EAAQ,UAAU,CAACT,EAAQ,aAAa,OAAO,KACzCA,EAAA,aAAa,SAASS,CAAO,GAGhCZ,GAAkBG,CAAO;AAClC;AAEgB,SAAAU,GACdC,GACAC,GACA;AACA,EAAID,aAAoB,eAClBC,KACOD,EAAA,aAAa,SAASC,CAAK,GAE7BD,EAAA,UAAU,OAAO,oBAAoB,GACrCA,EAAA,UAAU,OAAO,qBAAqB,KACtCA,aAAoB,SACpBA,EAAA,QAAQ,CAAC,MAAM;AACtB,IAAIC,KACA,EAAA,aAAa,SAASA,CAAK,GAE7B,EAAA,UAAU,OAAO,oBAAoB,GACrC,EAAA,UAAU,OAAO,qBAAqB;AAAA,EAAA,CACzC;AAEL;AACO,SAASC,GAAWF,GAAuC;AAChE,EAAIA,aAAoB,eACbA,EAAA,UAAU,OAAO,oBAAoB,GACrCA,EAAA,UAAU,IAAI,qBAAqB,KACnCA,aAAoB,SACpBA,EAAA,QAAQ,CAAC5G,MAAM;AACpB,IAAAA,EAAA,UAAU,OAAO,oBAAoB,GACrCA,EAAA,UAAU,IAAI,qBAAqB;AAAA,EAAA,CACtC;AAEL;AACgB,SAAA+G,GACdH,GACAC,GACA;AACA,EAAID,aAAoB,eAClBC,KACOD,EAAA,aAAa,SAASC,CAAK,GAE7BD,EAAA,UAAU,IAAI,oBAAoB,GAClCA,EAAA,UAAU,OAAO,qBAAqB,KACtCA,aAAoB,SACpBA,EAAA,QAAQ,CAAC,MAAM;AACtB,IAAIC,KACA,EAAA,aAAa,SAASA,CAAK,GAE7B,EAAA,UAAU,IAAI,oBAAoB,GAClC,EAAA,UAAU,OAAO,qBAAqB;AAAA,EAAA,CACzC;AAEL;AC3IA;AAAA;AAAA;AAAA;AAAA;AAKA,MAAM9G,KAAE,QAAOC,KAAED,GAAE,eAAsBA,GAAE,aAAX,UAAqBA,GAAE,SAAS,iBAAe,wBAAuB,SAAS,aAAW,aAAY,cAAc,WAAUT,KAAE,OAAM,GAAGJ,KAAE,oBAAI;AAAQ,IAAA8H,KAAA,MAAO;AAAA,EAAC,YAAY,GAAE,GAAE,GAAE;AAAC,QAAG,KAAK,eAAa,IAAG,MAAI1H;AAAE,YAAM,MAAM,mEAAmE;AAAE,SAAK,UAAQ,GAAE,KAAK,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK;AAAE,UAAMA,IAAE,KAAK;AAAE,QAAGU,MAAY,MAAT,QAAW;AAAC,YAAMA,IAAWV,MAAT,UAAgBA,EAAE,WAAN;AAAa,MAAAU,MAAI,IAAEd,GAAE,IAAII,CAAC,IAAY,MAAT,YAAc,KAAK,IAAE,IAAE,IAAI,iBAAe,YAAY,KAAK,OAAO,GAAEU,KAAGd,GAAE,IAAII,GAAE,CAAC;AAAA,IAAE;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAO;AAAC;AAAM,MAACY,KAAE,CAAAH,MAAG,IAAII,GAAY,OAAOJ,KAAjB,WAAmBA,IAAEA,IAAE,IAAG,QAAOT,EAAC,GAAEW,KAAE,CAACF,MAAKC,MAAI;AAAC,QAAMd,IAAMa,EAAE,WAAN,IAAaA,EAAE,CAAC,IAAEC,EAAE,OAAQ,CAACA,GAAEV,GAAEJ,MAAIc,KAAG,CAAAD,MAAG;AAAC,QAAQA,EAAE,iBAAP;AAAoB,aAAOA,EAAE;AAAQ,QAAa,OAAOA,KAAjB;AAAmB,aAAOA;AAAE,UAAM,MAAM,qEAAmEA,IAAE,sFAAsF;AAAA,EAAC,GAAGT,CAAC,IAAES,EAAEb,IAAE,CAAC,GAAGa,EAAE,CAAC,CAAC;AAAE,SAAO,IAAII,GAAEjB,GAAEa,GAAET,EAAC;AAAC,GAAEsB,KAAE,CAAC,GAAE1B,MAAI;AAACc,EAAAA,KAAE,EAAE,qBAAmBd,EAAE,IAAK,CAAAa,MAAGA,aAAa,gBAAcA,IAAEA,EAAE,UAAY,IAACb,EAAE,QAAS,OAAG;AAAC,UAAM,IAAE,SAAS,cAAc,OAAO,GAAEiB,IAAEJ,GAAE;AAAS,IAASI,MAAT,UAAY,EAAE,aAAa,SAAQA,CAAC,GAAE,EAAE,cAAY,EAAE,SAAQ,EAAE,YAAY,CAAC;AAAA,EAAC,CAAC;AAAE,GAAEP,KAAEI,KAAE,CAAAD,MAAGA,IAAE,CAAAA,MAAGA,aAAa,iBAAe,OAAG;AAAC,MAAI,IAAE;AAAG,aAAUT,KAAK,EAAE;AAAS,SAAGA,EAAE;AAAQ,SAAOY,GAAE,CAAC;AAAC,GAAGH,CAAC,IAAEA;ACJ9yC;AAAA;AAAA;AAAA;AAAA;AAIG,IAAIT;AAAE,MAAMU,KAAE,QAAOE,KAAEF,GAAE,cAAaqD,KAAEnD,KAAEA,GAAE,cAAY,IAAGC,KAAEH,GAAE,gCAA+Bd,KAAE,EAAC,YAAYa,GAAEE,GAAE;AAAC,UAAOA,GAAC;AAAA,IAAE,KAAK;AAAQ,MAAAF,IAAEA,IAAEsD,KAAE;AAAK;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,MAAAtD,IAAQA,KAAN,OAAQA,IAAE,KAAK,UAAUA,CAAC;AAAA,EAAC;AAAC,SAAOA;AAAC,GAAE,cAAcA,GAAEE,GAAE;AAAC,MAAIX,IAAES;AAAE,UAAOE;IAAG,KAAK;AAAQ,MAAAX,IAASS,MAAP;AAAS;AAAA,IAAM,KAAK;AAAO,MAAAT,IAASS,MAAP,OAAS,OAAK,OAAOA,CAAC;AAAE;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,UAAG;AAAC,QAAAT,IAAE,KAAK,MAAMS,CAAC;AAAA,MAAC,SAAOA,GAAE;AAAC,QAAAT,IAAE;AAAA,MAAI;AAAA,EAAC;AAAC,SAAOA;AAAC,EAAC,GAAEgB,KAAE,CAACP,GAAEE,MAAIA,MAAIF,MAAIE,KAAGA,KAAGF,KAAGA,IAAGQ,KAAE,EAAC,WAAU,IAAG,MAAK,QAAO,WAAUrB,IAAE,SAAQ,IAAG,YAAWoB,GAAC,GAAEG,KAAE;AAAY,IAAAwG,IAAA,cAAgB,YAAW;AAAA,EAAC,cAAa;AAAC,UAAO,GAAC,KAAK,OAAK,oBAAI,OAAI,KAAK,kBAAgB,IAAG,KAAK,aAAW,IAAG,KAAK,OAAK,MAAK,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,OAAO,eAAe,GAAE;AAAC,QAAIhH;AAAE,SAAK,SAAQ,KAAYA,IAAE,KAAK,OAAf,QAA4BA,MAAT,SAAWA,IAAE,KAAK,IAAE,CAAA,GAAI,KAAK,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,qBAAoB;AAAC,SAAK,SAAU;AAAC,UAAM,IAAE,CAAA;AAAG,WAAO,KAAK,kBAAkB,QAAS,CAACA,GAAEX,MAAI;AAAC,YAAMU,IAAE,KAAK,KAAKV,GAAEW,CAAC;AAAE,MAASD,MAAT,WAAa,KAAK,KAAK,IAAIA,GAAEV,CAAC,GAAE,EAAE,KAAKU,CAAC;AAAA,IAAE,CAAC,GAAG;AAAA,EAAC;AAAA,EAAC,OAAO,eAAe,GAAEC,IAAEM,IAAE;AAAC,QAAGN,EAAE,UAAQA,EAAE,YAAU,KAAI,KAAK,SAAU,GAAC,KAAK,kBAAkB,IAAI,GAAEA,CAAC,GAAE,CAACA,EAAE,cAAY,CAAC,KAAK,UAAU,eAAe,CAAC,GAAE;AAAC,YAAMX,IAAY,OAAO,KAAjB,WAAmB,OAAM,IAAG,OAAK,GAAEU,IAAE,KAAK,sBAAsB,GAAEV,GAAEW,CAAC;AAAE,MAASD,MAAT,UAAY,OAAO,eAAe,KAAK,WAAU,GAAEA,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,sBAAsB,GAAEC,GAAEX,GAAE;AAAC,WAAM,EAAC,MAAK;AAAC,aAAO,KAAKW,CAAC;AAAA,IAAC,GAAE,IAAID,GAAE;AAAC,YAAM,IAAE,KAAK,CAAC;AAAE,WAAKC,CAAC,IAAED,GAAE,KAAK,cAAc,GAAE,GAAEV,CAAC;AAAA,IAAC,GAAE,cAAa,IAAG,YAAW,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,mBAAmB,GAAE;AAAC,WAAO,KAAK,kBAAkB,IAAI,CAAC,KAAGiB;AAAAA,EAAC;AAAA,EAAC,OAAO,WAAU;AAAC,QAAG,KAAK,eAAeE,EAAC;AAAE,aAAM;AAAG,SAAKA,EAAC,IAAE;AAAG,UAAM,IAAE,OAAO,eAAe,IAAI;AAAE,QAAG,EAAE,SAAU,GAAU,EAAE,MAAX,WAAe,KAAK,IAAE,CAAC,GAAG,EAAE,CAAC,IAAG,KAAK,oBAAkB,IAAI,IAAI,EAAE,iBAAiB,GAAE,KAAK,OAAK,oBAAI,OAAI,KAAK,eAAe,YAAY,GAAE;AAAC,YAAMV,IAAE,KAAK,YAAWE,IAAE,CAAC,GAAG,OAAO,oBAAoBF,CAAC,GAAE,GAAG,OAAO,sBAAsBA,CAAC,CAAC;AAAE,iBAAUT,KAAKW;AAAE,aAAK,eAAeX,GAAES,EAAET,CAAC,CAAC;AAAA,IAAC;AAAC,WAAO,KAAK,gBAAc,KAAK,eAAe,KAAK,MAAM,GAAE;AAAA,EAAE;AAAA,EAAC,OAAO,eAAeW,GAAE;AAAC,UAAMX,IAAE,CAAA;AAAG,QAAG,MAAM,QAAQW,CAAC,GAAE;AAAC,YAAMD,IAAE,IAAI,IAAIC,EAAE,KAAK,KAAG,EAAE,QAAO,CAAE;AAAE,iBAAU,KAAKD;AAAE,QAAAV,EAAE,QAAQS,GAAE,CAAC,CAAC;AAAA,IAAC;AAAM,MAASE,MAAT,UAAYX,EAAE,KAAKS,GAAEE,CAAC,CAAC;AAAE,WAAOX;AAAA,EAAC;AAAA,EAAC,OAAO,KAAK,GAAEW,GAAE;AAAC,UAAMX,IAAEW,EAAE;AAAU,WAAWX,MAAL,KAAO,SAAiB,OAAOA,KAAjB,WAAmBA,IAAY,OAAO,KAAjB,WAAmB,EAAE,YAAW,IAAG;AAAA,EAAM;AAAA,EAAC,OAAM;AAAC,QAAI;AAAE,SAAK,OAAK,IAAI,QAAS,CAAAS,MAAG,KAAK,iBAAeA,CAAC,GAAG,KAAK,OAAK,oBAAI,OAAI,KAAK,KAAI,GAAG,KAAK,cAAe,IAAS,IAAE,KAAK,YAAY,OAA3B,QAAwC,MAAT,UAAY,EAAE,QAAS,CAAAA,MAAGA,EAAE,IAAI,CAAC;AAAA,EAAE;AAAA,EAAC,cAAc,GAAE;AAAC,QAAIE,GAAEX;AAAE,MAASW,IAAE,KAAK,UAAf,QAA+BA,MAAT,SAAWA,IAAE,KAAK,OAAK,CAAA,GAAI,KAAK,CAAC,GAAW,KAAK,eAAd,UAA0B,KAAK,iBAAsBX,IAAE,EAAE,mBAAZ,QAAqCA,MAAT,UAAYA,EAAE,KAAK,CAAC;AAAA,EAAE;AAAA,EAAC,iBAAiB,GAAE;AAAC,QAAIW;AAAE,KAAQA,IAAE,KAAK,UAAf,QAA+BA,MAAT,UAAYA,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,MAAI,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,SAAK,YAAY,kBAAkB,QAAS,CAAC,GAAEA,MAAI;AAAC,WAAK,eAAeA,CAAC,MAAI,KAAK,KAAK,IAAIA,GAAE,KAAKA,CAAC,CAAC,GAAE,OAAO,KAAKA,CAAC;AAAA,IAAE,CAAG;AAAA,EAAA;AAAA,EAAC,mBAAkB;AAAC,QAAI;AAAE,UAAMX,KAAU,IAAE,KAAK,gBAAf,QAAqC,MAAT,SAAW,IAAE,KAAK,aAAa,KAAK,YAAY,iBAAiB;AAAE,WAAOW,GAAEX,GAAE,KAAK,YAAY,aAAa,GAAEA;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,QAAI;AAAE,IAAS,KAAK,eAAd,WAA2B,KAAK,aAAW,KAAK,iBAAgB,IAAI,KAAK,eAAe,EAAE,IAAU,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,QAAS,CAAAS,MAAG;AAAC,UAAIE;AAAE,cAAeA,IAAEF,EAAE,mBAAZ,QAAqCE,MAAT,SAAW,SAAOA,EAAE,KAAKF,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE;AAAA,EAAC,eAAe,GAAE;AAAA,EAAA;AAAA,EAAE,uBAAsB;AAAC,QAAI;AAAE,KAAQ,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,QAAS,CAAAA,MAAG;AAAC,UAAIE;AAAE,cAAeA,IAAEF,EAAE,sBAAZ,QAAwCE,MAAT,SAAW,SAAOA,EAAE,KAAKF,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE;AAAA,EAAC,yBAAyB,GAAEE,GAAEX,GAAE;AAAC,SAAK,KAAK,GAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEW,GAAEX,IAAEiB,IAAE;AAAC,QAAIP;AAAE,UAAM,IAAE,KAAK,YAAY,KAAK,GAAEV,CAAC;AAAE,QAAY,MAAT,UAAiBA,EAAE,YAAP,IAAe;AAAC,YAAM+D,OAAqBrD,IAAEV,EAAE,eAAZ,QAAiCU,MAAT,SAAW,SAAOA,EAAE,iBAAtD,SAAmEV,EAAE,YAAUJ,IAAG,YAAYe,GAAEX,EAAE,IAAI;AAAE,WAAK,OAAK,GAAQ+D,KAAN,OAAQ,KAAK,gBAAgB,CAAC,IAAE,KAAK,aAAa,GAAEA,CAAC,GAAE,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEpD,GAAE;AAAC,QAAIX;AAAE,UAAMU,IAAE,KAAK,aAAY,IAAEA,EAAE,KAAK,IAAI,CAAC;AAAE,QAAY,MAAT,UAAY,KAAK,SAAO,GAAE;AAAC,YAAMD,IAAEC,EAAE,mBAAmB,CAAC,GAAEqD,IAAc,OAAOtD,EAAE,aAArB,aAA+B,EAAC,eAAcA,EAAE,UAAS,MAAoBT,IAAES,EAAE,eAAZ,QAAiCT,MAAT,SAAW,SAAOA,EAAE,mBAAtD,SAAqES,EAAE,YAAUb;AAAE,WAAK,OAAK,GAAE,KAAK,CAAC,IAAEmE,EAAE,cAAcpD,GAAEF,EAAE,IAAI,GAAE,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,cAAc,GAAEE,GAAEX,GAAE;AAAC,QAAIU,IAAE;AAAG,IAAS,MAAT,aAAeV,IAAEA,KAAG,KAAK,YAAY,mBAAmB,CAAC,GAAG,cAAYgB,IAAG,KAAK,CAAC,GAAEL,CAAC,KAAG,KAAK,KAAK,IAAI,CAAC,KAAG,KAAK,KAAK,IAAI,GAAEA,CAAC,GAAOX,EAAE,YAAP,MAAgB,KAAK,SAAO,MAAa,KAAK,SAAd,WAAqB,KAAK,OAAK,oBAAI,QAAK,KAAK,KAAK,IAAI,GAAEA,CAAC,MAAIU,IAAE,KAAI,CAAC,KAAK,mBAAiBA,MAAI,KAAK,OAAK,KAAK;EAAO;AAAA,EAAO,OAAM;AAAA,WAAAkH,EAAA;AAAC,WAAK,kBAAgB;AAAG,UAAG;AAAC,cAAM,KAAK;AAAA,MAAI,SAAOnH,GAAE;AAAC,gBAAQ,OAAOA,CAAC;AAAA,MAAC;AAAC,YAAM,IAAE,KAAK,eAAgB;AAAC,aAAa,KAAN,SAAS,MAAM,IAAE,CAAC,KAAK;AAAA,IAAe;AAAA;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK,cAAe;AAAA,EAAA;AAAA,EAAC,gBAAe;AAAC,QAAI;AAAE,QAAG,CAAC,KAAK;AAAgB;AAAO,SAAK,YAAW,KAAK,SAAO,KAAK,KAAK,QAAS,CAACA,GAAEE,MAAI,KAAKA,CAAC,IAAEF,CAAG,GAAC,KAAK,OAAK;AAAQ,QAAIE,IAAE;AAAG,UAAMX,IAAE,KAAK;AAAK,QAAG;AAAC,MAAAW,IAAE,KAAK,aAAaX,CAAC,GAAEW,KAAG,KAAK,WAAWX,CAAC,IAAU,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,QAAS,CAAAS,MAAG;AAAC,YAAIE;AAAE,gBAAeA,IAAEF,EAAE,gBAAZ,QAAkCE,MAAT,SAAW,SAAOA,EAAE,KAAKF,CAAC;AAAA,MAAC,CAAG,GAAC,KAAK,OAAOT,CAAC,KAAG,KAAK,KAAI;AAAA,IAAE,SAAOS,GAAE;AAAC,YAAME,IAAE,IAAG,KAAK,KAAI,GAAGF;AAAA,IAAC;AAAC,IAAAE,KAAG,KAAK,KAAKX,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAA,EAAA;AAAA,EAAE,KAAK,GAAE;AAAC,QAAIW;AAAE,KAAQA,IAAE,KAAK,UAAf,QAA+BA,MAAT,UAAYA,EAAE,QAAS,CAAAF,MAAG;AAAC,UAAI;AAAE,cAAe,IAAEA,EAAE,iBAAZ,QAAmC,MAAT,SAAW,SAAO,EAAE,KAAKA,CAAC;AAAA,IAAC,CAAG,GAAC,KAAK,eAAa,KAAK,aAAW,IAAG,KAAK,aAAa,CAAC,IAAG,KAAK,QAAQ,CAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,oBAAI,OAAI,KAAK,kBAAgB;AAAA,EAAE;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAO,KAAK,kBAAiB;AAAA,EAAE;AAAA,EAAC,oBAAmB;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,aAAa,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,GAAE;AAAC,IAAS,KAAK,SAAd,WAAqB,KAAK,KAAK,QAAS,CAACA,GAAEE,MAAI,KAAK,KAAKA,GAAE,KAAKA,CAAC,GAAEF,CAAC,CAAG,GAAC,KAAK,OAAK,SAAQ,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,QAAQ,GAAE;AAAA,EAAA;AAAA,EAAE,aAAa,GAAE;AAAA,EAAE;AAAA;AAACK,EAAEK,EAAC,IAAE,IAAGL,EAAE,oBAAkB,oBAAI,OAAIA,EAAE,gBAAc,CAAE,GAACA,EAAE,oBAAkB,EAAC,MAAK,OAAM,GAAQD,MAAN,QAASA,GAAE,EAAC,iBAAgBC,EAAC,CAAC,KAAWd,KAAEU,GAAE,6BAAZ,QAA+CV,OAAT,SAAWA,KAAEU,GAAE,0BAAwB,CAAE,GAAE,KAAK,OAAO;ACLpiL;AAAA;AAAA;AAAA;AAAA;AAKA,IAAID;AAAO,MAACE,KAAE,QAAOX,IAAEW,GAAE,cAAaD,KAAEV,IAAEA,EAAE,aAAa,YAAW,EAAC,YAAW,CAAAS,MAAGA,EAAC,CAAC,IAAE,QAAOI,KAAE,SAAQjB,IAAE,QAAQ,KAAK,OAAM,IAAG,IAAI,MAAM,CAAC,CAAC,KAAIqB,KAAE,MAAIrB,GAAEmE,KAAE,IAAI9C,EAAC,KAAIL,IAAE,UAASE,KAAE,MAAIF,EAAE,cAAc,EAAE,GAAEO,KAAE,CAAAV,MAAUA,MAAP,QAAoB,OAAOA,KAAjB,YAAgC,OAAOA,KAAnB,YAAqBH,KAAE,MAAM,SAAQsF,KAAE,CAAAnF,MAAGH,GAAEG,CAAC,KAAe,QAAaA,KAAN,OAAQ,SAAOA,EAAE,OAAO,QAAQ,MAAnD,YAAsDO,KAAE;AAAA,QAAc4C,KAAE,uDAAsDW,KAAE,QAAOG,KAAE,MAAKxD,IAAE,OAAO,KAAKF,EAAC,qBAAqBA,EAAC,KAAKA,EAAC;AAAA,2BAAsC,GAAG,GAAEK,KAAE,MAAKE,KAAE,MAAKoC,KAAE,sCAAqCP,KAAE,CAAA3C,MAAG,CAACE,MAAKX,OAAK,EAAC,YAAWS,GAAE,SAAQE,GAAE,QAAOX,EAAC,IAAG+E,KAAE3B,GAAE,CAAC,GAASf,IAAE,OAAO,IAAI,cAAc,GAAE4D,IAAE,OAAO,IAAI,aAAa,GAAE7F,KAAE,oBAAI,WAAQ+B,IAAEvB,EAAE,iBAAiBA,GAAE,KAAI,MAAK,EAAE;AAAE,SAAS2B,GAAE9B,GAAEE,GAAE;AAAC,MAAG,CAAC,MAAM,QAAQF,CAAC,KAAG,CAACA,EAAE,eAAe,KAAK;AAAE,UAAM,MAAM,gCAAgC;AAAE,SAAgBC,OAAT,SAAWA,GAAE,WAAWC,CAAC,IAAEA;AAAC;AAAC,MAAMkD,KAAE,CAACpD,GAAEE,MAAI;AAAC,QAAMX,IAAES,EAAE,SAAO,GAAEC,IAAE,CAAA;AAAG,MAAIO,GAAE,IAAMN,MAAJ,IAAM,UAAQ,IAAGG,IAAE8C;AAAE,WAAQjD,IAAE,GAAEA,IAAEX,GAAEW,KAAI;AAAC,UAAMX,IAAES,EAAEE,CAAC;AAAE,QAAIQ,GAAEb,GAAEsF,IAAE,IAAG5E,IAAE;AAAE,WAAKA,IAAEhB,EAAE,WAASc,EAAE,YAAUE,GAAEV,IAAEQ,EAAE,KAAKd,CAAC,GAASM,MAAP;AAAW,MAAAU,IAAEF,EAAE,WAAUA,MAAI8C,KAAUtD,EAAE,CAAC,MAAX,QAAaQ,IAAEyD,KAAWjE,EAAE,CAAC,MAAZ,SAAcQ,IAAE4D,KAAWpE,EAAE,CAAC,MAAZ,UAAeqD,GAAE,KAAKrD,EAAE,CAAC,CAAC,MAAIW,IAAE,OAAO,OAAKX,EAAE,CAAC,GAAE,GAAG,IAAGQ,IAAEI,KAAYZ,EAAE,CAAC,MAAZ,WAAgBQ,IAAEI,KAAGJ,MAAII,IAAQZ,EAAE,CAAC,MAAT,OAAYQ,IAAQG,KAAN,OAAQA,IAAE2C,IAAEgC,IAAE,MAAatF,EAAE,CAAC,MAAZ,SAAcsF,IAAE,MAAIA,IAAE9E,EAAE,YAAUR,EAAE,CAAC,EAAE,QAAOa,IAAEb,EAAE,CAAC,GAAEQ,IAAWR,EAAE,CAAC,MAAZ,SAAcY,IAAQZ,EAAE,CAAC,MAAT,MAAWiB,KAAEF,MAAGP,MAAIS,MAAGT,MAAIO,KAAEP,IAAEI,IAAEJ,MAAIyD,MAAGzD,MAAI4D,KAAE5D,IAAE8C,MAAG9C,IAAEI,GAAED,IAAE;AAAQ,UAAMmC,IAAEtC,MAAII,KAAGT,EAAEE,IAAE,CAAC,EAAE,WAAW,IAAI,IAAE,MAAI;AAAG,SAAGG,MAAI8C,KAAE5D,IAAE+D,KAAE6B,KAAG,KAAGlF,EAAE,KAAKS,CAAC,GAAEnB,EAAE,MAAM,GAAE4F,CAAC,IAAE/E,KAAEb,EAAE,MAAM4F,CAAC,IAAEhG,IAAEwD,KAAGpD,IAAEJ,KAAQgG,MAAL,MAAQlF,EAAE,KAAK,MAAM,GAAEC,KAAGyC;AAAA,EAAE;AAAC,SAAM,CAACb,GAAE9B,GAAE,KAAGA,EAAET,CAAC,KAAG,UAAYW,MAAJ,IAAM,WAAS,GAAG,GAAED,CAAC;AAAC;AAAE,MAAM0B,GAAC;AAAA,EAAC,YAAY,EAAC,SAAQ,GAAE,YAAWzB,EAAC,GAAED,GAAE;AAAC,QAAIqD;AAAE,SAAK,QAAM,CAAE;AAAC,QAAI,IAAE,GAAE5C,IAAE;AAAE,UAAMb,IAAE,EAAE,SAAO,GAAEsF,IAAE,KAAK,OAAM,CAAC5E,GAAE4C,CAAC,IAAEC,GAAE,GAAElD,CAAC;AAAE,QAAG,KAAK,KAAGyB,GAAE,cAAcpB,GAAEN,CAAC,GAAEyB,EAAE,cAAY,KAAK,GAAG,SAAYxB,MAAJ,GAAM;AAAC,YAAMF,IAAE,KAAK,GAAG,SAAQE,IAAEF,EAAE;AAAW,MAAAE,EAAE,OAAM,GAAGF,EAAE,OAAO,GAAGE,EAAE,UAAU;AAAA,IAAC;AAAC,YAAaoD,IAAE5B,EAAE,SAAQ,OAApB,QAAyByD,EAAE,SAAOtF,KAAG;AAAC,UAAOyD,EAAE,aAAN,GAAe;AAAC,YAAGA,EAAE,cAAe,GAAC;AAAC,gBAAMtD,IAAE,CAAE;AAAC,qBAAUE,KAAKoD,EAAE,kBAAmB;AAAC,gBAAGpD,EAAE,SAASE,EAAC,KAAGF,EAAE,WAAWf,CAAC,GAAE;AAAC,oBAAMI,IAAE4D,EAAEzC,GAAG;AAAE,kBAAGV,EAAE,KAAKE,CAAC,GAAWX,MAAT,QAAW;AAAC,sBAAMS,IAAEsD,EAAE,aAAa/D,EAAE,YAAW,IAAGa,EAAC,EAAE,MAAMjB,CAAC,GAAEe,IAAE,eAAe,KAAKX,CAAC;AAAE,gBAAA4F,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,GAAE,MAAKjF,EAAE,CAAC,GAAE,SAAQF,GAAE,MAAWE,EAAE,CAAC,MAAT,MAAWS,KAAQT,EAAE,CAAC,MAAT,MAAW2E,KAAQ3E,EAAE,CAAC,MAAT,MAAW0E,KAAE7C,GAAC,CAAC;AAAA,cAAC;AAAM,gBAAAoD,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAC,CAAC;AAAA,YAAC;AAAC,qBAAUjF,KAAKF;AAAE,YAAAsD,EAAE,gBAAgBpD,CAAC;AAAA,QAAC;AAAC,YAAGgD,GAAE,KAAKI,EAAE,OAAO,GAAE;AAAC,gBAAMtD,IAAEsD,EAAE,YAAY,MAAMnE,CAAC,GAAEe,IAAEF,EAAE,SAAO;AAAE,cAAGE,IAAE,GAAE;AAAC,YAAAoD,EAAE,cAAY/D,IAAEA,EAAE,cAAY;AAAG,qBAAQA,IAAE,GAAEA,IAAEW,GAAEX;AAAI,cAAA+D,EAAE,OAAOtD,EAAET,CAAC,GAAEc,IAAG,GAAEqB,EAAE,SAAQ,GAAGyD,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAE,EAAC,CAAC;AAAE,YAAA7B,EAAE,OAAOtD,EAAEE,CAAC,GAAEG,GAAG,CAAA;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAaiD,EAAE,aAAN;AAAe,YAAGA,EAAE,SAAO9C;AAAE,UAAA2E,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAC,CAAC;AAAA,aAAM;AAAC,cAAInF,IAAE;AAAG,kBAAWA,IAAEsD,EAAE,KAAK,QAAQnE,GAAEa,IAAE,CAAC,OAA5B;AAAgC,YAAAmF,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAC,CAAC,GAAEnF,KAAGb,EAAE,SAAO;AAAA,QAAC;AAAC;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAc,GAAEe,GAAE;AAAC,UAAMX,IAAEY,EAAE,cAAc,UAAU;AAAE,WAAOZ,EAAE,YAAU,GAAEA;AAAA,EAAC;AAAC;AAAC,SAASsB,EAAEb,GAAEE,GAAEX,IAAES,GAAEC,GAAE;AAAC,MAAIG,GAAEjB,GAAEqB,GAAE8C;AAAE,MAAGpD,MAAI0B;AAAE,WAAO1B;AAAE,MAAIC,IAAWF,MAAT,UAAmBG,IAAEb,EAAE,UAAZ,QAA4Ba,MAAT,SAAW,SAAOA,EAAEH,CAAC,IAAEV,EAAE;AAAK,QAAMc,IAAEK,GAAER,CAAC,IAAE,SAAOA,EAAE;AAAgB,UAAaC,KAAN,OAAQ,SAAOA,EAAE,iBAAeE,OAAYlB,IAAQgB,KAAN,OAAQ,SAAOA,EAAE,UAA3B,QAA2ChB,MAAT,UAAYA,EAAE,KAAKgB,GAAE,EAAE,GAAWE,MAAT,SAAWF,IAAE,UAAQA,IAAE,IAAIE,EAAEL,CAAC,GAAEG,EAAE,KAAKH,GAAET,GAAEU,CAAC,IAAYA,MAAT,WAAoBO,KAAG8C,IAAE/D,GAAG,UAAhB,QAAgCiB,MAAT,SAAWA,IAAE8C,EAAE,OAAK,CAAA,GAAIrD,CAAC,IAAEE,IAAEZ,EAAE,OAAKY,IAAYA,MAAT,WAAaD,IAAEW,EAAEb,GAAEG,EAAE,KAAKH,GAAEE,EAAE,MAAM,GAAEC,GAAEF,CAAC,IAAGC;AAAC;AAAC,MAAM6E,GAAC;AAAA,EAAC,YAAY,GAAE7E,GAAE;AAAC,SAAK,OAAK,CAAA,GAAG,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIA;AAAE,UAAK,EAAC,IAAG,EAAC,SAAQX,EAAC,GAAE,OAAMU,EAAC,IAAE,KAAK,MAAKG,MAAWF,IAAQ,KAAN,OAAQ,SAAO,EAAE,mBAA3B,QAAoDA,MAAT,SAAWA,IAAEC,GAAG,WAAWZ,GAAE,EAAE;AAAE,IAAAmC,EAAE,cAAYtB;AAAE,QAAIjB,IAAEuC,EAAE,SAAQ,GAAGlB,IAAE,GAAE8C,IAAE,GAAEjD,IAAEJ,EAAE,CAAC;AAAE,WAAcI,MAAT,UAAY;AAAC,UAAGG,MAAIH,EAAE,OAAM;AAAC,YAAIH;AAAE,QAAIG,EAAE,SAAN,IAAWH,IAAE,IAAI2B,GAAE1C,GAAEA,EAAE,aAAY,MAAK,CAAC,IAAMkB,EAAE,SAAN,IAAWH,IAAE,IAAIG,EAAE,KAAKlB,GAAEkB,EAAE,MAAKA,EAAE,SAAQ,MAAK,CAAC,IAAMA,EAAE,SAAN,MAAaH,IAAE,IAAIsB,GAAErC,GAAE,MAAK,CAAC,IAAG,KAAK,KAAK,KAAKe,CAAC,GAAEG,IAAEJ,EAAE,EAAEqD,CAAC;AAAA,MAAC;AAAC,MAAA9C,OAAWH,KAAN,OAAQ,SAAOA,EAAE,WAASlB,IAAEuC,EAAE,SAAU,GAAClB;AAAA,IAAI;AAAC,WAAOkB,EAAE,cAAYvB,GAAEC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIF,IAAE;AAAE,eAAUX,KAAK,KAAK;AAAK,MAASA,MAAT,WAAsBA,EAAE,YAAX,UAAoBA,EAAE,KAAK,GAAEA,GAAEW,CAAC,GAAEA,KAAGX,EAAE,QAAQ,SAAO,KAAGA,EAAE,KAAK,EAAEW,CAAC,CAAC,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAM2B,GAAC;AAAA,EAAC,YAAY,GAAE3B,GAAEX,GAAEU,GAAE;AAAC,QAAIG;AAAE,SAAK,OAAK,GAAE,KAAK,OAAKoF,GAAE,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKtF,GAAE,KAAK,OAAKX,GAAE,KAAK,UAAQU,GAAE,KAAK,QAAaG,IAAQH,KAAN,OAAQ,SAAOA,EAAE,iBAA3B,QAAkDG,MAAT,UAAYA;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,QAAI,GAAEF;AAAE,YAAeA,KAAU,IAAE,KAAK,UAAf,QAA+B,MAAT,SAAW,SAAO,EAAE,UAApD,QAAoEA,MAAT,SAAWA,IAAE,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK,KAAK;AAAW,UAAMA,IAAE,KAAK;AAAK,WAAgBA,MAAT,WAAwB,KAAN,OAAQ,SAAO,EAAE,cAAvB,OAAmC,IAAEA,EAAE,aAAY;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEA,IAAE,MAAK;AAAC,QAAEW,EAAE,MAAK,GAAEX,CAAC,GAAEQ,GAAE,CAAC,IAAE,MAAI8E,KAAS,KAAN,QAAc,MAAL,MAAQ,KAAK,SAAOA,KAAG,KAAK,KAAI,GAAG,KAAK,OAAKA,KAAG,MAAI,KAAK,QAAM,MAAI5D,KAAG,KAAK,EAAE,CAAC,IAAW,EAAE,eAAX,SAAsB,KAAK,EAAE,CAAC,IAAW,EAAE,aAAX,SAAoB,KAAK,EAAE,CAAC,IAAEuD,GAAE,CAAC,IAAE,KAAK,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,WAAO,KAAK,KAAK,WAAW,aAAa,GAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAO,MAAI,KAAK,KAAM,GAAC,KAAK,OAAK,KAAK,EAAE,CAAC;AAAA,EAAE;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAOK,KAAG9E,GAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAK,IAAE,KAAK,EAAEP,EAAE,eAAe,CAAC,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAID;AAAE,UAAK,EAAC,QAAOX,GAAE,YAAWU,EAAC,IAAE,GAAEG,IAAY,OAAOH,KAAjB,WAAmB,KAAK,KAAK,CAAC,KAAYA,EAAE,OAAX,WAAgBA,EAAE,KAAG0B,GAAE,cAAcG,GAAE7B,EAAE,GAAEA,EAAE,EAAE,CAAC,CAAC,GAAE,KAAK,OAAO,IAAGA;AAAG,UAAYC,IAAE,KAAK,UAAf,QAA+BA,MAAT,SAAW,SAAOA,EAAE,UAAQE;AAAE,WAAK,KAAK,EAAEb,CAAC;AAAA,SAAM;AAAC,YAAMS,IAAE,IAAI+E,GAAE3E,GAAE,IAAI,GAAEF,IAAEF,EAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,EAAE,EAAET,CAAC,GAAE,KAAK,EAAEW,CAAC,GAAE,KAAK,OAAKF;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,QAAIE,IAAEP,GAAE,IAAI,EAAE,OAAO;AAAE,WAAgBO,MAAT,UAAYP,GAAE,IAAI,EAAE,SAAQO,IAAE,IAAIyB,GAAE,CAAC,CAAC,GAAEzB;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,IAAAL,GAAE,KAAK,IAAI,MAAI,KAAK,OAAK,IAAG,KAAK,KAAM;AAAE,UAAMK,IAAE,KAAK;AAAK,QAAIX,GAAEU,IAAE;AAAE,eAAUG,KAAK;AAAE,MAAAH,MAAIC,EAAE,SAAOA,EAAE,KAAKX,IAAE,IAAIsC,GAAE,KAAK,EAAExB,GAAG,CAAA,GAAE,KAAK,EAAEA,GAAG,CAAA,GAAE,MAAK,KAAK,OAAO,CAAC,IAAEd,IAAEW,EAAED,CAAC,GAAEV,EAAE,KAAKa,CAAC,GAAEH;AAAI,IAAAA,IAAEC,EAAE,WAAS,KAAK,KAAKX,KAAGA,EAAE,KAAK,aAAYU,CAAC,GAAEC,EAAE,SAAOD;AAAA,EAAE;AAAA,EAAC,KAAK,IAAE,KAAK,KAAK,aAAYC,GAAE;AAAC,QAAIX;AAAE,UAAYA,IAAE,KAAK,UAAf,QAA+BA,MAAT,UAAYA,EAAE,KAAK,MAAK,IAAG,IAAGW,CAAC,GAAE,KAAG,MAAI,KAAK,QAAM;AAAC,YAAM,IAAE,EAAE;AAAY,QAAE,OAAM,GAAG,IAAE;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,QAAIA;AAAE,IAAS,KAAK,SAAd,WAAqB,KAAK,OAAK,IAAUA,IAAE,KAAK,UAAf,QAA+BA,MAAT,UAAYA,EAAE,KAAK,MAAK,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM6B,GAAC;AAAA,EAAC,YAAY,GAAE7B,GAAEX,GAAEU,GAAEG,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAKoF,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQ,GAAE,KAAK,OAAKtF,GAAE,KAAK,OAAKD,GAAE,KAAK,UAAQG,GAAEb,EAAE,SAAO,KAAQA,EAAE,CAAC,MAAR,MAAgBA,EAAE,CAAC,MAAR,MAAW,KAAK,OAAK,MAAMA,EAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQA,KAAG,KAAK,OAAKiG;AAAA,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEtF,IAAE,MAAKX,GAAEU,GAAE;AAAC,UAAMG,IAAE,KAAK;AAAQ,QAAIjB,IAAE;AAAG,QAAYiB,MAAT;AAAW,UAAES,EAAE,MAAK,GAAEX,GAAE,CAAC,GAAEf,IAAE,CAACuB,GAAE,CAAC,KAAG,MAAI,KAAK,QAAM,MAAIkB,GAAEzC,MAAI,KAAK,OAAK;AAAA,SAAO;AAAC,YAAMc,IAAE;AAAE,UAAIO,GAAE;AAAE,WAAI,IAAEJ,EAAE,CAAC,GAAEI,IAAE,GAAEA,IAAEJ,EAAE,SAAO,GAAEI;AAAI,YAAEK,EAAE,MAAKZ,EAAEV,IAAEiB,CAAC,GAAEN,GAAEM,CAAC,GAAE,MAAIoB,MAAI,IAAE,KAAK,KAAKpB,CAAC,IAAGrB,MAAIA,IAAE,CAACuB,GAAE,CAAC,KAAG,MAAI,KAAK,KAAKF,CAAC,IAAG,MAAIgF,IAAE,IAAEA,IAAE,MAAIA,MAAI,MAAU,KAAN,OAAQ,IAAE,MAAIpF,EAAEI,IAAE,CAAC,IAAG,KAAK,KAAKA,CAAC,IAAE;AAAA,IAAC;AAAC,IAAArB,KAAG,CAACc,KAAG,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAIuF,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAW,KAAN,OAAQ,IAAE,EAAE;AAAA,EAAC;AAAC;AAAC,MAAM7E,WAAUoB,GAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,KAAK,IAAI,IAAE,MAAIyD,IAAE,SAAO;AAAA,EAAC;AAAC;AAAC,MAAMpG,KAAEG,IAAEA,EAAE,cAAY;AAAG,MAAMsF,WAAU9C,GAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAG,MAAIyD,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAKpG,EAAC,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI;AAAA,EAAC;AAAC;AAAC,MAAMwF,WAAU7C,GAAC;AAAA,EAAC,YAAY,GAAE7B,GAAEX,GAAEU,GAAEG,GAAE;AAAC,UAAM,GAAEF,GAAEX,GAAEU,GAAEG,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAK,GAAEF,IAAE,MAAK;AAAC,QAAIX;AAAE,SAAI,KAAUA,IAAEsB,EAAE,MAAK,GAAEX,GAAE,CAAC,OAAtB,QAAmCX,MAAT,SAAWA,IAAEiG,OAAK5D;AAAE;AAAO,UAAM3B,IAAE,KAAK,MAAKG,IAAE,MAAIoF,KAAGvF,MAAIuF,KAAG,EAAE,YAAUvF,EAAE,WAAS,EAAE,SAAOA,EAAE,QAAM,EAAE,YAAUA,EAAE,SAAQd,IAAE,MAAIqG,MAAIvF,MAAIuF,KAAGpF;AAAG,IAAAA,KAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKH,CAAC,GAAEd,KAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAK,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,QAAIe,GAAEX;AAAE,IAAY,OAAO,KAAK,QAAxB,aAA6B,KAAK,KAAK,MAAaA,KAAUW,IAAE,KAAK,aAAf,QAAkCA,MAAT,SAAW,SAAOA,EAAE,UAAvD,QAAuEX,MAAT,SAAWA,IAAE,KAAK,SAAQ,CAAC,IAAE,KAAK,KAAK,YAAY,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMiC,GAAC;AAAA,EAAC,YAAY,GAAEtB,GAAEX,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKW,GAAE,KAAK,UAAQX;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE;AAAC,IAAAsB,EAAE,MAAK,CAAC;AAAA,EAAC;AAAC;AAAM,MAA6DuB,KAAElC,GAAE;AAA6BkC,MAAN,QAASA,GAAET,IAAEE,EAAC,KAAW7B,KAAEE,GAAE,qBAAZ,QAAuCF,OAAT,SAAWA,KAAEE,GAAE,kBAAgB,CAAE,GAAE,KAAK,OAAO;AAAE,MAAMR,KAAE,CAACM,GAAEE,GAAEX,MAAI;AAAC,MAAIU,GAAEG;AAAE,QAAMjB,KAAUc,IAAQV,KAAN,OAAQ,SAAOA,EAAE,kBAA3B,QAAmDU,MAAT,SAAWA,IAAEC;AAAE,MAAIM,IAAErB,EAAE;AAAW,MAAYqB,MAAT,QAAW;AAAC,UAAMR,KAAUI,IAAQb,KAAN,OAAQ,SAAOA,EAAE,kBAA3B,QAAmDa,MAAT,SAAWA,IAAE;AAAK,IAAAjB,EAAE,aAAWqB,IAAE,IAAIqB,GAAE3B,EAAE,aAAaG,GAAC,GAAGL,CAAC,GAAEA,GAAE,QAAaT,KAAN,OAAQA,IAAE,CAAE,CAAA;AAAA,EAAC;AAAC,SAAOiB,EAAE,KAAKR,CAAC,GAAEQ;AAAC;ACJluP;AAAA;AAAA;AAAA;AAAA;AAIG,IAAIA,IAAEJ;SAAY,cAAgBJ,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,gBAAc,EAAC,MAAK,KAAI,GAAE,KAAK,OAAK;AAAA,EAAM;AAAA,EAAC,mBAAkB;AAAC,QAAI,GAAE;AAAE,UAAME,IAAE,MAAM;AAAmB,YAAe,KAAG,IAAE,KAAK,eAAe,kBAAjC,QAAyD,MAAT,WAAa,EAAE,eAAaA,EAAE,aAAYA;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE;AAAC,UAAMA,IAAE,KAAK,OAAQ;AAAC,SAAK,eAAa,KAAK,cAAc,cAAY,KAAK,cAAa,MAAM,OAAO,CAAC,GAAE,KAAK,OAAKD,GAAEC,GAAE,KAAK,YAAW,KAAK,aAAa;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,QAAI;AAAE,UAAM,sBAA4B,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,aAAa,EAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,QAAI;AAAE,UAAM,qBAAsB,IAAS,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,aAAa,EAAE;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOA;AAAAA,EAAC;AAAC;AAACX,GAAE,YAAU,IAAGA,GAAE,gBAAc,KAAWiB,KAAE,WAAW,8BAArB,QAAyDA,OAAT,UAAYA,GAAE,KAAK,YAAW,EAAC,YAAWjB,GAAC,CAAC;AAAE,MAAMJ,KAAE,WAAW;AAAgCA,MAAN,QAASA,GAAE,EAAC,YAAWI,GAAC,CAAC;AAAA,EAAgEa,KAAE,WAAW,wBAArB,QAAmDA,OAAT,SAAWA,KAAE,WAAW,qBAAmB,CAAE,GAAE,KAAK,OAAO;ACL3gC;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMF,KAAE,CAACA,GAAED,MAAeA,EAAE,SAAb,YAAmBA,EAAE,cAAY,EAAE,WAAUA,EAAE,cAAYmH,GAAAC,EAAA,IAAIpH,IAAJ,EAAM,SAASd,GAAE;AAAC,EAAAA,EAAE,eAAec,EAAE,KAAIC,CAAC;AAAC,EAAC,KAAE,EAAC,MAAK,SAAQ,KAAI,OAAQ,GAAC,WAAU,OAAM,YAAW,CAAE,GAAC,aAAYD,EAAE,KAAI,cAAa;AAAC,EAAY,OAAOA,EAAE,eAArB,eAAmC,KAAKA,EAAE,GAAG,IAAEA,EAAE,YAAY,KAAK,IAAI;AAAE,GAAE,SAASd,GAAE;AAAC,EAAAA,EAAE,eAAec,EAAE,KAAIC,CAAC;AAAC,EAAC,GAAED,KAAE,CAACC,GAAED,GAAEd,MAAI;AAAC,EAAAc,EAAE,YAAY,eAAed,GAAEe,CAAC;AAAC;AAAE,SAASf,GAAEA,GAAE;AAAC,SAAM,CAAC,GAAEiB,MAAaA,MAAT,SAAWH,GAAEd,GAAE,GAAEiB,CAAC,IAAEF,GAAEf,GAAE,CAAC;AAAC;ACJva;AAAA;AAAA;AAAA;AAAA;AAIG,SAASa,EAAEA,GAAE;AAAC,SAAOG,GAAEiH,GAAAC,EAAA,IAAIrH,IAAJ,EAAM,OAAM,GAAE,EAAC;AAAC;ACL1C;AAAA;AAAA;AAAA;AAAA;AAKK,MAAmHI,KAAE,CAAC,EAAC,UAASH,GAAE,YAAW,EAAC,MAAI,CAACG,GAAE,MAAI;AAAC,MAAID;AAAE,MAAY,MAAT,QAAW;AAAC,UAAMhB,KAAUgB,IAAEC,EAAE,iBAAZ,QAAmCD,MAAT,SAAWA,IAAEC,EAAE,KAAIF,IAAQ,KAAN,OAAQ,EAAC,MAAK,UAAS,WAAU,aAAY,KAAIf,GAAE,YAAW,EAAEiB,EAAE,GAAG,EAAC,IAAEgH,GAAAC,EAAA,IAAIjH,IAAJ,EAAM,KAAIjB,EAAC;AAAE,WAAac,KAAN,SAAUC,EAAE,WAAS,SAASF,GAAE;AAAC,MAAAC,EAAED,GAAEb,CAAC;AAAA,IAAC,IAAGe;AAAA,EAAC;AAAC;AAAC,UAAM,IAAEE,EAAE;AAAY,IAAS,MAAT,UAAY,OAAO,eAAeA,GAAE,GAAE,EAAE,CAAC,CAAC,GAAQH,KAAN,QAASA,EAAE,GAAE,CAAC;AAAA,EAAC;AAAC;ACJtc;AAAA;AAAA;AAAA;AAAA;AAIG,IAAId;AAAAA,EAAyBA,KAAE,OAAO,qBAAjB,QAA4CA,OAAT,SAAW,SAAOA,GAAE,UAAU,qBAAxE;ACLjB;AAAA;AAAA;AAAA;AAAA;AAKK,MAACa,KAAE,EAAC,WAAU,GAAE,OAAM,GAAE,UAAS,GAAE,mBAAkB,GAAE,OAAM,GAAE,SAAQ,EAAC,GAAEC,KAAE,CAAAD,MAAG,IAAIC,OAAK,EAAC,iBAAgBD,GAAE,QAAOC,EAAC;AAAC,IAAAqH,KAAE,MAAO;AAAA,EAAC,YAAY,GAAE;AAAA,EAAA;AAAA,EAAE,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE,GAAEpH,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE,GAAE;AAAC,WAAO,KAAK,OAAO,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE,GAAE;AAAC,WAAO,KAAK,OAAO,GAAG,CAAC;AAAA,EAAC;AAAC;ACJ3S;AAAA;AAAA;AAAA;AAAA;AAIG,MAAME,KAAEF,GAAE,cAAcX,GAAC;AAAA,EAAC,YAAYS,GAAE;AAAC,QAAIE;AAAE,QAAG,MAAMF,CAAC,GAAEA,EAAE,SAAOG,GAAE,aAAqBH,EAAE,SAAZ,aAA2BE,IAAEF,EAAE,aAAZ,QAA+BE,MAAT,SAAW,SAAOA,EAAE,UAAQ;AAAE,YAAM,MAAM,oGAAoG;AAAA,EAAC;AAAA,EAAC,OAAOF,GAAE;AAAC,WAAM,MAAI,OAAO,KAAKA,CAAC,EAAE,OAAQ,CAAAE,MAAGF,EAAEE,CAAC,GAAI,KAAK,GAAG,IAAE;AAAA,EAAG;AAAA,EAAC,OAAOA,GAAE,CAACX,CAAC,GAAE;AAAC,QAAIY,GAAEC;AAAE,QAAY,KAAK,OAAd,QAAiB;AAAC,WAAK,KAAG,oBAAI,OAAaF,EAAE,YAAX,WAAqB,KAAK,KAAG,IAAI,IAAIA,EAAE,QAAQ,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,OAAQ,CAAAF,MAAQA,MAAL,EAAQ,CAAA;AAAG,iBAAUA,KAAKT;AAAE,QAAAA,EAAES,CAAC,KAAG,EAAE,GAAQG,IAAE,KAAK,QAAf,QAA6BA,MAAT,WAAkBA,EAAE,IAAIH,CAAC,MAAI,KAAK,GAAG,IAAIA,CAAC;AAAE,aAAO,KAAK,OAAOT,CAAC;AAAA,IAAC;AAAC,UAAMU,IAAEC,EAAE,QAAQ;AAAU,SAAK,GAAG,QAAS,CAAAF,MAAG;AAAC,MAAAA,KAAKT,MAAIU,EAAE,OAAOD,CAAC,GAAE,KAAK,GAAG,OAAOA,CAAC;AAAA,IAAE,CAAC;AAAG,eAAUA,KAAKT,GAAE;AAAC,YAAMW,IAAE,CAAC,CAACX,EAAES,CAAC;AAAE,MAAAE,MAAI,KAAK,GAAG,IAAIF,CAAC,KAAI,GAAQI,IAAE,KAAK,QAAf,QAA6BA,MAAT,WAAkBA,EAAE,IAAIJ,CAAC,MAAKE,KAAGD,EAAE,IAAID,CAAC,GAAE,KAAK,GAAG,IAAIA,CAAC,MAAIC,EAAE,OAAOD,CAAC,GAAE,KAAK,GAAG,OAAOA,CAAC;AAAA,IAAG;AAAC,WAAOA;AAAAA,EAAC;AAAC,CAAC;;;;;;ACKz1B,MAAMuH,UAAyBC,GAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA,GA+Ea,KAAA,SAAA,IAGA,KAAA,SAAA;AAAA,EAAA;AAAA,EAKH,oBAAoB;AAAA,WAAAL,EAAA;AACjC,MAAAM,GAAAF,EAAA,iBAAM,0BAAN,IAAwB,GAExB,KAAK,OAAO,MAAM,KAAK,cAAc,KAAK,MAAM,GAChD,KAAK,SAAS;AAAA,IAChB;AAAA;AAAA,EAEA,gBAAgB;AACT,SAAA,SAAS,CAAC,KAAK;AAAA,EACtB;AAAA,EAEM,cAAcG,GAAiB;AAAA,WAAAP,EAAA;AAC7B,YAAAQ,IAAa,CAAOC,MAAqBT,EAAA;AAItC,eAHM,MAAM,OAAO,qBAAgB,EAAE,KAAK,CAAClD,MACzCA,EAAE2D,CAAQ,CAClB;AAAA,MACM;AAGT,UAAIF,GAAQ;AACJ,cAAA,EAAE,MAAAG,GAAM,SAAAC,EAAY,IAAAJ;AAC1B,gBAAQG,GAAM;AAAA,UACZ,KAAK,SAAS;AACN,kBAAAE,IAAY,MAAMJ,EAAWG,CAAO;AAC1C,mBAAIC,IACKC;AAAAA;AAAAA,oBAECD,EAAK,GAAG;AAAA;AAAA,8BAIXE;AAAAA,UACT;AAAA,UACA,KAAK;AACH,mBAAOD,qCAAuCF,CAAO;AAAA,UACvD,KAAK;AACI,mBAAAE;AAAAA;AAAAA,qCAEoBF,CAAO;AAAA;AAAA,UAEpC;AACS,mBAAAG;AAAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA;AAAA,EAES,SAAS;AACT,WAAAD;AAAAA,cACGE,GAAS;AAAA,MACf,SAAS;AAAA,MACT,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,IAAA,CAChB,CAAC;AAAA,eACO,KAAK,aAAa;AAAA;AAAA,QAEzB,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6Bf;AACF;AA5KaX,EACK,SAAS;AAAA,EACvBY;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAuEF;AAGAC,GAAA;AAAA,EADCC,GAAS,EAAE,WAAW,IAAO;AAAA,GA3EnBd,EA4EX,WAAA,UAAA,CAAA;AAGAa,GAAA;AAAA,EADCE,EAAM;AAAA,GA9EIf,EA+EX,WAAA,UAAA,CAAA;AAGAa,GAAA;AAAA,EADCE,EAAM;AAAA,GAjFIf,EAkFX,WAAA,UAAA,CAAA;AAGAa,GAAA;AAAA,EADCE,EAAM;AAAA,GApFIf,EAqFX,WAAA,QAAA,CAAA;ACrFU,IAAAgB,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,cAAc,eAJJA,IAAAA,KAAA,CAAA,CAAA;AAOC,MAAAC,KAA4B,CACvCC,GACAzC,MAEIyC,KAAoBzC,IACf,SAELyC,IACK,cAELzC,IACK,eAEF,QAGI0C,KAAuB,CAACC,MAC9BA,IAGD,OAAOA,KAAsB,aAAaA,IACrC,SAGP,OAAOA,KAAsB,YAC7B,CAAC,MAAM,QAAQA,CAAiB,IAEzB,UAEF,gBAXE,UAkBEC,KAAqB,CAChCC,GACAC,GACAC,GACAJ,GACAK,IAA2B,OACW7B,EAAA;AjB3DxC,MAAA8B,GAAAC;AiB4DE,QAAMC,IAAmBX;AAAA,IACvBM;AAAA,IACAC;AAAA,EAAA,GAEIK,IAAcV,GAAqBC,CAAiB,GAEpDU,IAAkB;AAAA,IACtB,kBAAkBP,IACdA,EAAsB,UAAU,EAAI,IACpC;AAAA,IACJ,mBAAmBC,IACfA,EAAuB,UAAU,EAAI,IACrC;AAAA,EAAA,GAGAO,IAAmC;AAAA,IACvC,aAAAF;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAkB,SAAS,cAAc,KAAK;AAAA,EAAA;AAGhD,UAAQF,GAAkB;AAAA,IACxB,KAAK,QAAuB;AAC1B,MAAAG,EAAO,mBACLR,KAAyB,SAAS,cAAc,KAAK,GACnDM,MAAgB,aAClBE,EAAO,oBAAoBP;AAE7B;AAAA,IACF;AAAA,IACA,KAAK,aAA4B;AAG/B,UAFAO,EAAO,mBACLR,KAAyB,SAAS,cAAc,KAAK,GACnDM,MAAgB,UAAoB;AAChC,cAAAG,IAAiB,SAAS,KAAK;AAAA,UACnC,SAAS,cAAc,GAAG;AAAA,QAAA;AAE5B,QAAIH,MAAgB,WAClBG,EAAe,YAAYV,IAE7BS,EAAO,oBAAoBC;AAAA,MAC7B;AACA;AAAA,IACF;AAAA,IACA,KAAK,cAA6B;AAC1B,YAAAC,IAAgB,SAAS,cAAc,KAAK;AAClD,MAAAF,EAAO,mBAAmBE,GACtBJ,MAAgB,YAEJI,EAAA,MAAKT,KAAA,gBAAAA,EAAwB,OAAM,IAC7CC,KACFQ,EAAc,MAAM,UAAU,SACNP,IAAAF,KAAA,gBAAAA,EAAA,eAAA,QAAAE,EAAY,YAAYO,IAEhDF,EAAO,WAAW,MAAM;AjBlHlC,YAAAL;AiBmHY,SAAAA,IAAAF,KAAA,gBAAAA,EAAwB,eAAxB,QAAAE,EAAoC;AAAA,UAClCO;AAAA,UACAT;AAAA,WAEFS,EAAc,MAAM,WAClBT,KAAA,gBAAAA,EAAwB,MAAM,YAAW;AAAA,MAAA,MAG7CG,IAAAH,KAAA,gBAAAA,EAAwB,eAAxB,QAAAG,EAAoC;AAAA,QAClCM;AAAA,QACAT;AAAA,SAGJO,EAAO,gBAAgB,mBAAmBP,GAC1CO,EAAO,gBAAgB,oBAAoB,WAE3CA,EAAO,mBAAmB,SAAS,KAAK,YAAYE,CAAa,GACjEF,EAAO,oBAAoBP;AAE7B;AAAA,IACF;AAAA,IACA,KAAK,QAAuB;AACpB,YAAAS,IAAgB,SAAS,KAAK;AAAA,QAClC,SAAS,cAAc,KAAK;AAAA,MAAA;AAG9B,UADAF,EAAO,mBAAmBE,GACtBJ,MAAgB,UAAoB;AACtC,QAAK,eAAe,IAAI,oBAAoB,KAC3B,eAAA,OAAO,sBAAsB7B,CAAgB;AAExD,cAAAkC,IAAe,SAAS,cAAc,oBAAoB;AAChE,QAAAA,EAAQ,SAASd,EAAkB,QAE1B,SAAA,KAAK,YAAYc,CAAO,GACjC,QAAQ,IAAI,iBAAiB,GAI7BH,EAAO,oBAAoBG;AAAA,MAC7B;AACA;AAAA,IACF;AAAA,EACF;AAEO,SAAAH;AACT,ICtJMI,KAAqB;AAgCpB,MAAMC,GAAW;AAAA,EAItB,YACEC,GACOrD,GACP;AADO,SAAA,UAAAA,GAJT,KAAQ,cAA8B,IAM/B,KAAA,YAAYqD,EAAU,YAAY,IAAI,GAC3C,KAAK,UAAU,SAAS,oBAAoB,KAAK,QAAQ,gBAAgB,GACzE,KAAK,UAAU;AAAA,MACb;AAAA,MACA,KAAK,QAAQ;AAAA,IAAA;AAGf,UAAMC,IAAiB,KAAK,UAAU,IAAI,SAAS;AACnD,SAAK,QAAQ,iBAAiB,UAAU,IAAI,YAAY,GACxD,KAAK,QAAQ,iBAAiB,UAAU,IAAI,cAAcA,EAAO,IAAI,EAAE;AAEvE,UAAMC,IAAoBF,EAAU,IAAI,mBAAmB,KAAK,CAAA;AAChE,IAAAA,EAAU,SAAS,qBAAqB;AAAA,MACtC,GAAGE;AAAA,MACH,KAAK,QAAQ;AAAA,IAAA,CACd;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS;AACP,UAAM,EAAE,kBAAArB,GAAkB,mBAAAzC,MAAsB,KAAK,SAE/C6D,IAAiB,KAAK,UAAU,IAAI,SAAS;AAEnD,WAAIpB,EAAiB,aAAa,eAAe,MAAM,SAC9C,QAAQ,aAGbzC,KAAqB,KAAK,QAAQ,gBAAgBuC,EAAY,SAChExB,GAAWf,CAAiB,GAGvB,OAAO,sBAAU,EACrB,KAAK,CAAC+D,MAAWA,EAAO,QAAQ,KAAK,WAAWtB,CAAgB,CAAC,EACjE,KAAK,MAAM;AAGV,UAFiBA,EAAA,aAAa,iBAAiB,MAAM,GAGnDzC,KACA,KAAK,QAAQ,gBAAgBuC,EAAY,OACzC;AACM,cAAA5B,IAAW,KAAK,QAAQ,eAC3B;AACH,QAAAK,GAAUhB,GAAmBW,CAAO;AAAA,MACtC;AACiBqD,MAAAA,GAAA,KAAK,WAAWvB,CAAgB;AAEjD,YAAMwB,IAAU,KAAK,UAAU,IAAI,cAAc,EAAE,QAAQ;AAE3DC,MAAAA;AAAAA,QACE,KAAK;AAAA,QACLR;AAAA,QACAS,EAAc;AAAA,MAAA,EACd,KAAK,CAACC,MAAW;AACjB,QAAIA,KACKA,EAAA,QAAQ,CAACC,MAAU;AACxB,UACEJ,EAAQ;AAAA,YACN,CAACtH,MACCA,EAAE,SAAS0H,EAAM,QAAQ1H,EAAE,UAAU;AAAA,UAAA,KAGlCkH,EAAA,OAAO,SAAS,uBAAuBQ,CAAK;AAAA,QACrD,CACD;AAAA,MACH,CACD;AAAA,IAAA,CACF;AAAA,EACL;AAAA,EAEA,YAAY9D,GAAuB;AAC3B,UAAA,EAAE,mBAAAP,EAAkB,IAAI,KAAK;AAEnC,QAAI,CAACA;AACH;AAGF,IAAKA,EAAkB,aAAa,MAAM,KACtBA,EAAA,aAAa,QAAQ,QAAQ;AAGjD,UAAM,EAAE,MAAA6C,EAAK,IAAY,KAAK,UAAU,IAAI,SAAS,GAE/C,EAAE,OAAApC,GAAO,QAAAiB,GAAQ,WAAAhB,GAAW,eAAA4D,GAAe,aAAAC,EAAgB,IAAAhE,GAE3DiE,IAAiB,EAAE,eAAAF,GAAe,aAAAC;AACxC,SAAK,QAAQ,iBAAiBC;AAExB,UAAAC,IAAyBnE,GAAqBN,GAAmB;AAAA,MACrE,OAAAS;AAAA,MACA,QAAAiB;AAAA,MACA,WAAAhB;AAAA,MACA,YAAYmC;AAAA,MACZ,SAASyB;AAAA,IAAA,CACV;AACI,SAAA,YAAY,KAAKG,CAAsB;AAAA,EAC9C;AAAA,EAEM,UAAU;AAAA,WAAAtD,EAAA;AlBtJlB,UAAA8B,GAAAC,GAAAwB,GAAAC;AkBuJI,YAAM,EAAE,mBAAA3E,GAAmB,kBAAAyC,MAAqB,KAAK;AACjD,MAAA,KAAK,QAAQ,gBAAgB,oBAC3BA,OACFQ,IAAAR,EAAiB,eAAjB,QAAAQ,EAA6B;AAAA,QAC3B,KAAK,QAAQ,gBAAgB;AAAA,QAC7BR;AAAA,UAIF,KAAK,QAAQ,gBAAgB,qBAC3BzC,OACFkD,IAAAlD,EAAkB,eAAlB,QAAAkD,EAA8B;AAAA,QAC5B,KAAK,QAAQ,gBAAgB;AAAA,QAC7BlD;AAAA,UAID,KAAA,YAAY,QAAQ,CAAC4E,MAAgB;AAC5B,QAAAA;MAAA,CACb,IACgBF,IAAAjC,EAAA,eAAA,QAAAiC,EAAY,YAAYjC,KACtBkC,IAAA3E,KAAA,gBAAAA,EAAA,eAAA,QAAA2E,EAAY,YAAY3E;AAAA,IAC7C;AAAA;AACF;ACzJA,MAAM6E,KAAc,cAadC,KAA8B,CAClCC,MACqC;AACrC,QAAMC,IAA+C,EAAE,MAAMD,EAAS,KAAK;AAC3E,SAAIA,EAAS,WAAW,OAAOA,EAAS,WAAY,eAClDC,EAAW,UAAUD,EAAS,UAE5BA,EAAS,cAAc,OAAOA,EAAS,cAAe,eACxDC,EAAW,aAAaD,EAAS,aAE/BA,EAAS,UAAU,OAAOA,EAAS,UAAW,eAChDC,EAAW,SAASD,EAAS,SAGxBC;AACT;AAEO,MAAMC,GAA2D;AAAA,EACtE,YACUrB,GACAsB,GACR;AAFQ,SAAA,YAAAtB,GACA,KAAA,gBAAAsB;AAAA,EACP;AAAA,EAEH,OAAO,OAAOtB,GAA8D;AACnE,WAAAuB;AAAAA,MACLvB;AAAA,MACAiB;AAAA,MACAO,EAAgB;AAAA,MAChB;AAAA,QACE,QAAQjB,EAAc;AAAA,MACxB;AAAA,IAAA,EACA;AAAA,MACA,CAACe,MACC,IAAID,GAA8BrB,GAAWsB,CAAa;AAAA,IAAA;AAAA,EAEhE;AAAA,EAEA,MACEG,GACAC,GACAN,GACAzE,GACc;AACP,WAAAgF,EAAK,IAAI,EAAE,MACTrB;AAAAA,MACL,KAAK;AAAA,MACLW;AAAA,MACAV,EAAc;AAAA,IAAA,EACd,KAAK,CAACqB,IAAM,OAAO;AACnB,YAAM,EAAE,MAAAC,IAAO,IAAI,OAAAC,IAAQ,OAAOF,GAC5BG,IAAgBF,EAAK,QAAQJ,CAAG;AACtC,aAAIM,IAAgB,MACbF,EAAA,OAAOE,GAAe,CAAC,GAE9BF,EAAK,KAAKJ,CAAG,GACbK,EAAML,CAAG,IAAI;AAAA,QACX,SAAA9E;AAAA,QACA,YAAYuE,GAA4BE,CAAU;AAAA,QAClD,OAAOM,EAAO;AAAA,MAAA,GAET,KAAK,cAAc,EAAE,MAAAG,GAAM,OAAAC,EAAO,CAAA;AAAA,IAAA,CAC1C,CACF;AAAA,EACH;AAAA,EAEA,OAAOL,GAA2B;AACzB,WAAAE,EAAK,IAAI,EAAE,MACTrB;AAAAA,MACL,KAAK;AAAA,MACLW;AAAA,MACAV,EAAc;AAAA,IAAA,EACd,KAAK,CAACqB,IAAM,OAAO;AACnB,YAAM,EAAE,MAAAC,IAAO,IAAI,OAAAC,IAAQ,OAAOF,GAC5BI,IAAgBH,EAAK,QAAQJ,CAAG;AACtC,UAAIO,IAAgB;AACb,eAAAH,EAAA,OAAOG,GAAe,CAAC,GAC5B,OAAOF,EAAML,CAAG,GACT,KAAK,cAAcG,CAAG;AAAA,IAC/B,CACD,CACF;AAAA,EACH;AAAA,EAEA,KAAKK,GAA2C;AACvC,WAAAN,EAAK,IAAI,EAAE,MACTrB;AAAAA,MACL,KAAK;AAAA,MACLW;AAAA,MACAV,EAAc;AAAA,IAAA,EACd,KAAK,CAACqB,IAAM,OAAO;AACnB,YAAM,EAAE,MAAAC,IAAO,IAAI,OAAAC,IAAQ,OAAOF;AAC7B,MAAAC,EAAA,QAAQ,CAACJ,MAAQ;AACd,cAAAS,IAAOJ,EAAML,CAAG;AACtB,YAAIS,GAAM;AACR,gBAAM,EAAE,OAAAC,GAAO,YAAAf,GAAY,SAAAzE,EAAA,IAAYuF;AACvC,UAAAD,EAAS,MAAM;AAAA,YACb,YAAAb;AAAA,YACA,SAAAzE;AAAA,YACA,QAAQ,IAAIyF,GAAeH,GAAUE,CAAK;AAAA,UAAA,CAC3C;AAAA,QACH;AAAA,MAAA,CACD;AAAA,IAAA,CACF,CACF;AAAA,EACH;AACF;AAEa,MAAAE,KAAiB,CAACpC,MAA+C;AACtE,QAAA,EAAE,WAAAD,EAAc,IAAAC;AACf,SAAAoB,GAA8B,OAAOrB,CAAS,EAAE;AAAA,IACrD,CAACsC,MAAiB;AACV,YAAAnB,IAA2BnB,EAAU,IAAI,WAAW,GACpDuC,IAAY,EAAE,cAAAD,KACdL,IAAW,IAAIO,GAAkBvC,GAAQsC,CAAS,GAClDE,IAAyBC,GAAqBT,GAAUd,CAAQ;AAEtE,aAAAlB,EAAO,OAAO;AAAA,QACZ;AAAA,QACA,CAAC0C,GAAQC,MAAiC;AACpC,UAAAA,EAAK,UAAUC,GAAY,gBACNJ;QAE3B;AAAA,MAAA,GAGKR;AAAA,IACT;AAAA,EAAA;AAEJ,GC/Jaa,KAAuB,CAACC,MAC5B,iCAAqC,KAAK,CAAC,EAAE,iBAAAC,QAC3C,IAAIA,EAAgB,CAC5B,GAGUC,KAAuB,CAACjD,MAC5B,QAA0C,QAAA,EAAA,KAAA,MAAAkD,EAAA,EAAA;AAAA,EAC/C,CAAC,EAAE,gBAAAC,EAAA,MACM,IAAIA,EAAenD,CAAS;AACrC,GAISoD,KAA0B,CAACpD,MAC/B,QAA0C,QAAA,EAAA,KAAA,MAAAkD,EAAA,EAAA;AAAA,EAC/C,CAAC,EAAE,mBAAAG,EAAA,MACM,IAAIA,EAAkBrD,CAAS;AACxC,GAISsD,KAA0B,CAACtD,MAC/B,QAAA,QAAA,EAAA,KAAA,MAAAkD,EAAA,EAA0C,KAAK,MAE7Cb,GAAerC,EAAU,IAAI,SAAS,CAAC,CAC/C,GCYGuD,KAAuB,aACvBC,KAAmB,QACnBC,KAA4B;AAwBlC,MAAqBC,WAAeC,GAAW;AAAA,EAK7C,YAAY3D,GAAsB;AAChC,UAAMA,CAAS,GALjB,KAAA,8BAAc,OACyB,KAAA,YAAA,QACvC,KAAA,OAAwC,IAoCxC,KAAA,sBAAsB,CAAC4D,MAAgD;AACrE,YAAMjH,IAAU;AAAA,QACd,mBAAmBiH,EAAe;AAAA,QAClC,iBAAiB;AAAA;AAAA,MAAA;AAGnB,WAAK,UAAU,IAAI,UAAU,EAAE,KAAK,CAACzC,MAAkB;AAC/C,cAAA,EAAE,UAAA0C,EAAa,IAAA1C;AAMrB,SAJE,OAAO0C,KAAa,eACpBA,MAAa,QACbA,MAAa,QAGb,KAAK,aAAa,KAAK,aAAa,KAAK,OAAO,YAAY;AAAA,UAAK,MAC/D,KAAK,OAAOlH,CAAO;AAAA,QAAA;AAAA,MAEvB,CACD;AAAA,IAAA,GAjDD,KAAK,UAAU;AAAA,MAAc;AAAA,MAAW,MACtCmG,GAAqB,KAAK,SAAS;AAAA,IAAA,GAGhC,KAAA,UAAU,gBAAgB,YAAY,MAClCxC;AAAAA,MACL,KAAK;AAAA,MACLiD;AAAA,MACAhD,EAAc;AAAA,IAAA,EACd,KAAK,CAACY,IAAW,OACV1D,IAAA,IACF,KAAK,UAAU,IAAI,WAAW,IAC9B0D,EAEN,CACF,GAEoB2C,GAAA,MAAa,QAAQ,KAAK,mBAAmB,GAElE,KAAK,UAAU;AAAA,MAAc;AAAA,MAAqB,MAChDV,GAAwB,KAAK,SAAS;AAAA,IAAA,GAExC,KAAK,UAAU;AAAA,MAAc;AAAA,MAAkB,MAC7CH,GAAqB,KAAK,SAAS;AAAA,IAAA,GAErC,KAAK,UAAU,SAAS,cAAc,OAAO,UAAU,GACvD,KAAK,UAAU;AAAA,MAAc;AAAA,MAAc,MACzCK,GAAwB,KAAK,SAAS;AAAA,IAAA;AAAA,EAE1C;AAAA,EAuBA,aAAa;AACL,UAAAS,IAAW,KAAK,UAAU;AAAA,MAC9B;AAAA,MACA;AAAA,IAAA,GAMIC,IACJ,KAAK,UAAU,IAAI,KAAK;AAC1B,WAAIA,MACI,OAAe,sCAClB,OAAe,oCAAoC,KAErD,OAAe,kCAAkC,WAChDA,EAAY,QAGT,QAAQ,IAAI,CAACD,GAAU,KAAK,UAAU,IAAI,UAAU,CAAC,CAAC,EAAE;AAAA,MAC7D,CAAC,CAAC,EAAE,gBAAAE,GAAgB,YAAAC,EAAW,GAAGC,CAAS,OAC1BF,EAAA;AAAA,QAAU,KAAK,OAAO;AAAA,QAAM,CAACG,GAASC,GAAQC,MAC3D,KAAK,SAASD,GAAQC,CAAK;AAAA,MAAA,IAGL,CAACC,MAAsB;AAClC,QAAAL,EAAA,MAAM,MAAM,EAAE,MAAM,QAAQ,EAAE,QAAQ,CAACM,MAAa;AAClD,UAAAN,EAAA,UAAUM,GAAUD,CAAS;AAAA,QAAA,CACzC;AAAA,MAAA,GAIkB,OACO,GAE5B,KAAK,OAAO,UAAU,sBAAsB,CAAC1M,GAAI,EAAE,SAAAyE,QAAc;AAC/D,QAAI,KAAK,OAAO,UAAU,IAAI,kBAAkB,KACzC,KAAA,OAAO,SAAS,6BAA6B;AAAA,UAChD,SAAAA;AAAA,QAAA,CACD;AAAA,MACH,CACD,GAyCM,QAAQ;IACjB;AAAA,EAEJ;AAAA,EAEA,OAAOmI,IAAyB,IAAI;AAC3B,WAAA,KAAK,UACT,IAAI,UAAU,EACd,KAAK,CAAOC,MAAgCnH,EAAA,OAAhCmH,IAAgC,WAAhC,EAAE,SAAA7E,KAA8B;ArBzNnD,UAAAR,GAAAC;AqB0Nc,YAAA;AAAA,QACJ,kBAAAT;AAAA,QACA,KAAA4C,IAAMkD,GAAK;AAAA,QACX,mBAAAvI;AAAA,QACA,iBAAAwI;AAAA,MACE,IAAAH,GAOErF,IALcN,GAAqBe,CAAO,MAM9BlB,EAAY,YAC3BvC,KAAA,gBAAAA,EAAmB,sBAAqB,KAAK,GAE1CyI,IAAgB,MAAM7F;AAAA,QAC1B,KAAK,OAAO;AAAA,QACZH;AAAA,QACAzC;AAAA,QACAyD;AAAA,QACAT;AAAA,MAAA;AAGF,MAAI,KAAK,QAAQ,OAAO,KAAK,CAACwF,KAC5B,KAAK,eAAe,OAAO;AAG7B,YAAME,IAAO,MAAM;AACjB,cAAMC,IAAU,MACdlG,EAAiB,iBAAiB,qBAAqB,EAAE,WACzD,GACI,CAACA,CAAgB,IACrB,KAAK,OAAO,UAAU,IAAI,mBAAmB,GAEzCmG,IAAU,CACdC,GACAC,MACG;AACH,UAAIH,QACEF,EAAc,YAChBA,EAAc,SAAS,GAEzBK,EAAS,WAAW;AAAA,QACtB,GAEIvI,KAAU;AAAA,UACd,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,WAAW;AAAA,QAAA;AAGb,QAAIoI,OACYF,EAAA,YAAYA,EAAc,YAEzB,IAAI,iBAAiBG,CAAO,EAEpC,QAAQnG,GAAkBlC,EAAO;AAAA,MAAA;AAG5C,MAAIyC,KACG,KAAA,OAAO,UACT,SAAS,YAAY,EACrB,KAAK,CAAC,EAAE,QAAA+F,QAAkB;AAClB,QAAAA,EAAA;AAAA,UACL;AAAA,UACA,CAACxC,GAAaC,MAAc;AACtB,YAAAA,EAAK,sBAAsB,KACxBkC;UAET;AAAA,QAAA;AAAA,MACF,CACD;AAGL,YAAMM,IAAS,KAAK,sBAAsB3D,GAAKoD,CAAa;AA0CxD,UAzCC,KAAA,QAAQ,IAAIpD,GAAK2D,CAAM,GACvB,KAAA,OAAO,OAAO,SAAS,mBAAmB,CAAA,GAAI,EAAE,SAAS,GAAA,CAAM,GAEhEP,EAAc,gBAAgBlG,EAAY,SAASkB,OACrDR,IAAAwF,EAAc,sBAAd,QAAAxF,EAAiC;AAAA,QAC/B;AAAA,QACA;AAAA,SAEF+F,KAAA,QAAAA,EAAQ,YAAYvF,KAGlBgF,EAAc,gBAAgBlG,EAAY,YAC5CW,IAAAuF,EAAc,sBAAd,QAAAvF,EAAiC;AAAA,QAC/B;AAAA,QACA,CAAC+F,MAAe;AACd,UAAAA,EAAM,eAAe,GAChB,KAAA,UACF,IAAI,UAAU,EACd,KAAK,CAAC,EAAE,SAASC,QAAqC;AAElD,YAAAF,EAAA,SACA,KAAK,MAAM,KAAK,aAAa,EAC7B,KAAK,CAACG,MAEHD,KACAA,EAAe,UACfA,EAAe,WAAW,SAEnBC,MAAgBC,EAAkB,OACrC,KAAK,SACL,KAAK,SAEJD,MAAgBC,EAAkB,OACrC,KAAK,UACL,KAAK,MACV;AAAA,UAAA,CACJ;AAAA,QACL;AAAA,UAIA,KAAK,QAAQ,OAAO;AACtB,eAAO,KAAK,YAAA,EAAc,KAAK,CAAC9G,MAA6B;AAE3D,eAAK,yBAAyBA,CAAK;AAAA,QAAA,CACpC;AAGH,UAAIkG;AACF,eAAIA,MAAoB,YACf,KAAK,YAAA,EAAc,KAAK,CAAClG,MAA6B;AACvD,cAAAmG,EAAc,gBAAgBlG,EAAY,QAAQ;AACpD,iBAAK,yBAAyB,MAAM;AACpC;AAAA,UACF;AACA,eAAK,yBAAyBD,CAAK;AAAA,QAAA,CACpC,IAEI,KAAK,yBAAyBkG,CAAe;AAAA,IAGtD,EACD;AAAA,EACL;AAAA,EAEA,OAAOnD,GAAc;AACnB,QAAIA,GAAK;AACP,UAAI,KAAK,QAAQ,IAAIA,CAAG,GAAG;AACzB,cAAM2D,IAAS,KAAK,QAAQ,IAAI3D,CAAG;AACnC,QAAA2D,KAAA,QAAAA,EAAQ,WACH,KAAA,QAAQ,OAAO3D,CAAG;AACvB;AAAA,MACF;AACI,MAAA,QAAQ,IAAI,aAAa,gBACnB,QAAA,KAAK,iDAAiDA,CAAG,EAAE;AAErE;AAAA,IACF;AACK,SAAA,QAAQ,QAAQ,CAAC2D,MAAW;AAC/B,MAAAA,EAAO,QAAQ;AAAA,IAAA,CAChB,GACD,KAAK,QAAQ;EACf;AAAA,EAEQ,yBAAyBK,GAAe;AAC9C,YAAQA,GAAO;AAAA,MACb,KAAK;AACH,aAAK,MAAM;AACX;AAAA,MACF,KAAK;AACH,aAAK,KAAK;AACV;AAAA,MACF,KAAK;AACH,aAAK,KAAK;AACV;AAAA,MACF;AACE;AAAA,IACJ;AAAA,EACF;AAAA,EAEQ,sBACNhE,GACA9E,GACY;AACZ,WACE,KAAK,QAAQ,IAAI8E,CAAG,IAChB,KAAK,QAAQ,IAAIA,CAAG,IACpB,IAAI1B,GAAW,KAAK,WAAWpD,CAAO;AAAA,EAE9C;AAAA,EAEA,OAAO+I,IAAyB,IAAI;AAMlC,QALI,QAAQ,IAAI,aAAa,gBACnB,QAAA;AAAA,MACN;AAAA,IAAA,GAGAA,EAAW,MAAM;AACnB,YAAM/I,IAAsBa,GAAAC,EAAA,IACvBiI,IADuB;AAAA,QAE1B,iBAAiB;AAAA;AAAA,MAAA;AAEZ,aAAA,KAAK,OAAO/I,CAAO;AAAA,IAC5B;AACO,WAAA,KAAK,OAAO+I,CAAU;AAAA,EAC/B;AAAA,EAEA,SAAS9C,GAAY;AACnB,IAAIA,KAAA,QAAAA,EAAM,YACH,KAAA,YAAY,MAAMA,EAAK,QAAQ,GAIlCA,KAAA,QAAAA,EAAM,6BACR,KAAK,UAAU;AAAA,MACb;AAAA,MACAA,EAAK;AAAA,IAAA;AAAA,EAGX;AAAA,EAEA,YACE+C,GACyB;AACzB,WAAO,QAAQ,IAAI;AAAA,MACjB,KAAK,UAAU,IAAI,UAAU;AAAA,MAC7BpE;AAAAA,QACE,KAAK;AAAA,QACLgC;AAAA,QACA/B,EAAgB;AAAA,QAChB;AAAA,UACE,QAAQjB,EAAc;AAAA,QACxB;AAAA,MACF;AAAA,IACD,CAAA,EAAE,KAAK,CAAC,CAACY,GAAUyE,CAAK,MAChB,QAAQ,QAAQD,EAAGxE,CAAQ,CAAC,EAAE,KAAK,CAAC0E,MAClCD,EAAMC,CAAQ,EAAE,KAAK,MAAM;AAChC,YAAMC,IAAUrI,IAAA,IAAK0D,IAAa0E;AAClC,kBAAK,OAAO,OAAO,SAAS,2BAA2BC,CAAO,GACvDA;AAAA,IAAA,CACR,CACF,CACF;AAAA,EACH;AAAA,EAEA,gBAA+B;AACtB,WAAAvE;AAAAA,MACL,KAAK;AAAA,MACLgC;AAAA,MACA/B,EAAgB;AAAA,MAChB,EAAE,QAAQjB,EAAc,MAAM;AAAA,MAE7B,KAAK,CAACqF,MAAUA,EAAO,CAAA,EACvB,KAAK,MAAM,KAAK,UAAU,IAAI,UAAU,CAAC,EACzC,KAAK,CAACzE,MAAa;AAClB,WAAK,OAAO,OAAO,SAAS,2BAA2BA,CAAQ;AAAA,IAAA,CAChE;AAAA,EACL;AAAA,EAEA,OAAO,EAAE,QAAAkD,GAAQ,OAAAC,KAA0C;AACzD,WAAO,KAAK,UACT,SAAS,gBAAgB,EACzB,KAAK,CAACL,MAAmC;AACxC,MAAAA,EAAe,OAAO,KAAK,OAAO,MAAMI,GAAQC,CAAK;AAAA,IAAA,CACtD;AAAA,EACL;AAAA,EAEA,cAA0C;AA4BxC,YAxBwB,MACtBhE;AAAAA,MACE,KAAK;AAAA,MACLkD;AAAA,MACAjD,EAAc;AAAA,IAAA,EACd,KAAK,CAAC+D,IAAQkB,EAAkB,WAAWlB,CAAK,GAmB7B;AAAA,EACzB;AAAA,EAEA,OAAsB;AAChB,WAAA,KAAK,QAAQ,OAAO,KAClB,QAAQ,IAAI,aAAa,gBACnB,QAAA;AAAA,MACN;AAAA,IAAA,GAGG,QAAQ,cAEjB,KAAK,QAAQ,QAAQ,CAACc,MAAWA,EAAO,QAAQ,GACzC,KAAK,OAAO,EAAE,QAAQ,OAAQ,CAAA,EAAE,KAAK,MAAM;AAChD,WAAK,gBAAgB,EAAK;AAAA,IAAA,CAC3B;AAAA,EACH;AAAA,EAEA,OAAsB;AAChB,WAAA,KAAK,QAAQ,OAAO,KAClB,QAAQ,IAAI,aAAa,gBACnB,QAAA;AAAA,MACN;AAAA,IAAA,GAGG,QAAQ,cAEjB,KAAK,QAAQ,QAAQ,CAACA,MAAWA,EAAO,QAAQ,GACzC,KAAK,OAAO,EAAE,QAAQ,OAAQ,CAAA,EAAE,KAAK,OAC1C,KAAK,OAAO,OAAO,SAAS,4BAA4B,CAAE,CAAA,GACnD,KAAK,SACb;AAAA,EACH;AAAA,EAEA,QAAuB;AACjB,WAAA,KAAK,QAAQ,OAAO,KAClB,QAAQ,IAAI,aAAa,gBACnB,QAAA;AAAA,MACN;AAAA,IAAA,GAGG,QAAQ,aAEV,KAAK,OAAO,EAAE,QAAQ,QAAA,CAAS,EAAE,KAAK,MAAM,KAAK,QAAA,CAAS;AAAA,EACnE;AAAA,EAEA,OAAsB;AAChB,WAAA,QAAQ,IAAI,aAAa,gBACnB,QAAA;AAAA,MACN;AAAA,IAAA,GAGG,KAAK;EACd;AAAA,EAEQ,SAASf,GAAgB0B,GAAa;AAC5C,YAAQ1B,GAAQ;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACG,cAAA2B,IACJ3B,MAAW,SACPmB,EAAkB,OAClBnB,MAAW,UACXmB,EAAkB,SAClBA,EAAkB;AAExB,eAAO,KAAK,eAAeQ,CAAQ,EAAE,KAAK,MAAM;AACzC,eAAA,gBAAgBA,MAAaR,EAAkB,IAAI,GACpDQ,MAAaR,EAAkB,SACjCQ,MAAaR,EAAkB,OAC3B,KAAK,WACL,KAAK,YAET,KAAK,QAAQ;AAAA,YACX,CAACJ,MACC;ArBzkBhB,kBAAA/F;AqBykBgB,sBAAAA,IAAA+F,EAAO,QAAQ,sBAAf,gBAAA/F,EAAkC;AAAA,gBAChC;AAAA,gBACA;AAAA;AAAA;AAAA,UACF;AAAA,QAEN,CACD;AAAA,IACL;AAAA,EAEF;AAAA,EAEQ,eAAe2G,GAAiC;AACtD,UAAM,EAAE,QAAAC,GAAQ,QAAAd,MAAW,KAAK,UAAU,IAAI,SAAS;AACvD,WAAO,QAAQ,IAAI;AAAA,MACjB5D;AAAAA,QACE,KAAK;AAAA,QACLiC;AAAA,QACAhC,EAAgB;AAAA,QAChB;AAAA,UACE,QAAQjB,EAAc;AAAA,QACxB;AAAA,MACF;AAAA,MACAgB;AAAAA,QACE,KAAK;AAAA,QACLiC;AAAA,QACAhC,EAAgB;AAAA,QAChB;AAAA,UACE,QAAQjB,EAAc;AAAA,UACtB,UAAU,EAAE,SAAS,EAAE;AAAA,QACzB;AAAA,MACF;AAAA,MACA0F,EAAO,aAAa;AAAA,IAAA,CACrB,EAAE,KAAK,CAAC,CAACC,GAAkBC,GAAgBC,CAAmB,MAAM;AAC/D,MAAAJ,MAAa,WAAW,CAACA,KACZG,KACED,OAEjBA,EAAiBF,CAAQ,GAE3Bb,EAAO,SAAS,+BAA+B;AAAA,QAC7C,UAAUiB;AAAA,QACV,MAAMJ;AAAA,MAAA,CACP;AAAA,IAAA,CACF;AAAA,EACH;AAAA,EAEQ,SAAwB;AAY9B,gBAAK,QAAQ;AAAA,MACX,CAACZ,MACC;ArBroBR,YAAA/F;AqBqoBQ,gBAAAA,IAAA+F,EAAO,QAAQ,sBAAf,gBAAA/F,EAAkC,aAAa,iBAAiB;AAAA;AAAA,IAAM,GAEnE,QAAQ;EACjB;AAAA,EAEQ,UAAyB;AAC/B,UAAMgH,IAAW,KAAK,UAAU,aAAa,YAAY;AAgBlD,YAZmB,MACjB,KAAK,UACT,IAAI,UAAU,EACd,KAAK,CAACC,MAAmC;AACxC,YAAM,EAAE,UAAAzC,EAAS,IAAI,KAAK,UAAU,IAAI,WAAW;AAC/C,aAAAyC,EAAe,aAAazC,IACvB,KAAK,YAAY,MAAM,QAAQ,QAAQ,EAAE,UAAAA,EAAU,CAAA,CAAC,IAEtD,QAAQ;IAAQ,CACxB,GAGE,EACJ,KAAK,MACGwC,CACR,EACA;AAAA,MACC,CAAC,EAAE,YAAYE,QAAqD;AAElE,aAAK,QAAQ;AAAA,UACX,CAACnB,MACC;ArBpqBd,gBAAA/F;AqBoqBc,oBAAAA,IAAA+F,EAAO,QAAQ,sBAAf,gBAAA/F,EAAkC;AAAA,cAChC;AAAA,cACA;AAAA;AAAA;AAAA,QACF;AAAA,MAkBN;AAAA,IAAA;AAAA,EAGN;AAAA,EAEQ,gBAAgBmH,GAAe;AAChC,SAAA,QAAQ,QAAQ,CAACpB,MAAW;AACzB,YAAA;AAAA,QACJ,SAAS,EAAE,mBAAAhJ,GAAmB,gBAAAwE,EAAe;AAAA,MAC3C,IAAAwE,GACE,EAAE,aAAAzE,GAAa,eAAAD,MAClBE,KAAmC,CAAA;AACtC,MAAIxE,MACFoK,IACIpJ,GAAUhB,GAAmBuE,CAAW,IACxC3D,GAAYZ,GAAmBsE,CAAa;AAAA,IAClD,CACD;AAAA,EACH;AAAA,EAEA,aAAa;AACX,SAAK,KAAK,QAAQ,CAAC/K,MAAMA,EAAG,CAAA;AAE5B,UAAMoO,IAA4B,CAAA;AAC7B,gBAAA,QAAQ,QAAQ,CAACqB,MAAWrB,EAAS,KAAKqB,EAAO,QAAS,CAAA,CAAC,GAEzD9E;AAAAA,MACL,KAAK;AAAA,MACLmD;AAAA,MACAlD,EAAc;AAAA,IAAA,EACd,KAAK,CAAC+D,MAIFA,MAAU,KAAK,OAAO,OACjB/C;AAAAA,MACL,KAAK;AAAA,MACLkC;AAAA,MACAjC,EAAgB;AAAA,MAChB;AAAA,QACE,QAAQjB,EAAc;AAAA,QACtB,OAAOkG,GAAa;AAAA,MACtB;AAAA,IAEC,EAAA,KAAK,CAACb,MAAUA,GAAO,EACvB,KAAK,MAAM,QAAQ,IAAI7B,CAAQ,CAAC,IAE9B,QAAQ,IAAIA,CAAQ,CAC5B;AAAA,EACH;AACF;AC3uBA;AAAA;AAAA;AAAA;AAAA;SAKA,cAAgB,MAAK;AAAA,EAAC,YAAYpO,GAAES,GAAEC,GAAE;AAAC,UAAM,mBAAkB,EAAC,SAAQ,IAAG,UAAS,GAAE,CAAC,GAAE,KAAK,UAAQV,GAAE,KAAK,WAASS,GAAE,KAAK,YAAgBC,KAAN,QAASA;AAAA,EAAC;AAAC;ACLpJ;AAAA;AAAA;AAAA;AAAA;ACCA;AAAA;AAAA;AAAA;AAAA;AAIA,IAAAqQ,KAAG,MAAO;AAAA,EAAC,YAAY,GAAE/Q,GAAEW,GAAEoD,GAAE;AAAC,QAAIrD;AAAE,QAAG,KAAK,YAAU,IAAG,KAAK,WAAS,IAAG,KAAK,QAAM,QAAO,KAAK,IAAE,CAACD,GAAET,MAAI;AAAC,WAAK,gBAAc,KAAK,gBAAcA,MAAI,KAAK,WAAS,IAAG,KAAK,YAAa,IAAE,KAAK,aAAW,KAAK,YAAa,IAAE,KAAK,QAAMS,GAAE,KAAK,KAAK,cAAa,GAAG,KAAK,YAAU,CAAC,KAAK,cAAY,KAAK,WAAS,IAAG,KAAK,YAAU,KAAK,SAASA,GAAET,CAAC,IAAG,KAAK,cAAYA;AAAA,IAAC,GAAE,KAAK,OAAK,GAAWA,EAAE,YAAX,QAAmB;AAAC,YAAMS,IAAET;AAAE,WAAK,UAAQS,EAAE,SAAQ,KAAK,WAASA,EAAE,UAAS,KAAK,aAAkBC,IAAED,EAAE,eAAZ,QAAiCC,MAAT,UAAYA;AAAA,IAAC;AAAM,WAAK,UAAQV,GAAE,KAAK,WAASW,GAAE,KAAK,YAAgBoD,KAAN,QAASA;AAAE,SAAK,KAAK,cAAc,IAAI;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,SAAK,gBAAe;AAAA,EAAE;AAAA,EAAC,mBAAkB;AAAC,SAAK,gBAAc,KAAK,YAAa,GAAC,KAAK,cAAY;AAAA,EAAO;AAAA,EAAC,kBAAiB;AAAC,SAAK,KAAK,cAAc,IAAItD,GAAE,KAAK,SAAQ,KAAK,GAAE,KAAK,SAAS,CAAC;AAAA,EAAC;AAAC;ACLzyB;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMT,GAAC;AAAA,EAAC,YAAYA,GAAE;AAAC,SAAK,gBAAc,oBAAI,OAAI,KAAK,kBAAgB,MAAI;AAAC,iBAAS,CAACA,GAAE,EAAC,UAASS,EAAC,CAAC,KAAI,KAAK;AAAc,QAAAT,EAAE,KAAK,GAAES,CAAC;AAAA,IAAC,GAAWT,MAAT,WAAa,KAAK,QAAMA;AAAA,EAAE;AAAA,EAAC,IAAI,QAAO;AAAC,WAAO,KAAK;AAAA,EAAC;AAAA,EAAC,IAAI,MAAMA,GAAE;AAAC,SAAK,SAASA,CAAC;AAAA,EAAC;AAAA,EAAC,SAASA,GAAES,IAAE,IAAG;AAAC,UAAME,IAAEF,KAAG,CAAC,OAAO,GAAGT,GAAE,KAAK,CAAC;AAAE,SAAK,IAAEA,GAAEW,KAAG,KAAK,gBAAiB;AAAA,EAAA;AAAA,EAAC,YAAYX,GAAES,GAAEE,GAAE;AAAC,QAAG,CAACA;AAAE,aAAO,KAAKX,EAAE,KAAK,KAAK;AAAE,SAAK,cAAc,IAAIA,CAAC,KAAG,KAAK,cAAc,IAAIA,GAAE,EAAC,UAAS,MAAI;AAAC,WAAK,cAAc,OAAOA,CAAC;AAAA,IAAC,GAAE,cAAaS,EAAC,CAAC;AAAE,UAAK,EAAC,UAASsD,EAAC,IAAE,KAAK,cAAc,IAAI/D,CAAC;AAAE,IAAAA,EAAE,KAAK,OAAM+D,CAAC;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,SAAK,cAAc,MAAK;AAAA,EAAE;AAAC;ACJ5jB;AAAA;AAAA;AAAA;AAAA;AAIG,MAAMpD,WAAU,MAAK;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,oBAAmB,EAAC,SAAQ,IAAG,UAAS,GAAE,CAAC,GAAE,KAAK,UAAQ;AAAA,EAAC;AAAC;AAAC,MAAMD,WAAUV,GAAC;AAAA,EAAC,YAAYA,GAAEW,GAAED,GAAE;AAAC,UAAeC,EAAE,YAAX,SAAmBA,EAAE,eAAaD,CAAC,GAAE,KAAK,mBAAiB,CAAAD,MAAG;AAAC,YAAMT,IAAES,EAAE,aAAc,EAAC,CAAC;AAAE,MAAAA,EAAE,YAAU,KAAK,WAAST,MAAI,KAAK,SAAOS,EAAE,gBAAiB,GAAC,KAAK,YAAYA,EAAE,UAAST,GAAES,EAAE,SAAS;AAAA,IAAE,GAAE,KAAK,oBAAkB,CAAAT,MAAG;AAAC,YAAMW,IAAEX,EAAE,aAAc,EAAC,CAAC;AAAE,UAAGA,EAAE,YAAU,KAAK,WAASW,MAAI,KAAK,MAAK;AAAC,mBAAS,CAACX,GAAE,EAAC,cAAaW,EAAC,CAAC,KAAI,KAAK;AAAc,UAAAA,EAAE,cAAc,IAAIF,GAAE,KAAK,SAAQT,GAAE,EAAE,CAAC;AAAE,QAAAA,EAAE,gBAAe;AAAA,MAAE;AAAA,IAAC,GAAE,KAAK,OAAKA,GAAWW,EAAE,YAAX,SAAmB,KAAK,UAAQA,EAAE,UAAQ,KAAK,UAAQA,GAAE,KAAK,gBAAiB,GAAC,KAAK,KAAK,cAAc,IAAI;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC,SAAK,KAAK,iBAAiB,mBAAkB,KAAK,gBAAgB,GAAE,KAAK,KAAK,iBAAiB,oBAAmB,KAAK,iBAAiB;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,SAAK,KAAK,cAAc,IAAIA,GAAE,KAAK,OAAO,CAAC;AAAA,EAAC;AAAC;ACJr4B;AAAA;AAAA;AAAA;AAAA;AAIG,SAASF,GAAE,EAAC,SAAQA,GAAE,WAAUI,EAAC,GAAE;AAAC,SAAOH,GAAE,EAAC,UAAS,CAAC,GAAEJ,MAAI;AAAC,MAAE,eAAgB,CAAAI,MAAG;AAAC,UAAIE,GAAEF,GAAE,EAAC,SAAQD,GAAE,UAAS,OAAG;AAAC,QAAAC,EAAEJ,CAAC,IAAE;AAAA,MAAC,GAAE,WAAUO,EAAC,CAAC;AAAA,IAAC,CAAG;AAAA,EAAA,EAAC,CAAC;AAAC;ACFtI,MAAAmQ,KAAuD,YCAvDC,KACX,cCDWC,KACX,aCFWC,KAAgD,WCAhDC,KAA+C,UCA/CC,KAAmD;ACWzD,MAAMC,GAAgD;AAAA,EAO3D,YAAYC,GAAuB;AACjC,KAAC,KAAK,OAAOA,GAAM,cAAc,IAAI;AAAA,EACvC;AAAA,EAEA,gBAAgB;AAAA,EAAC;AAAA,EACjB,mBAAmB;AAAA,EAAC;AAAA,EAEpB,cAAcC,GAAiC;AAC7C,SAAK,cAAcA;AAAA,EACrB;AAAA,EAEA,aAAanH,GAAsB;AACjC,SAAK,aAAaA;AAAA,EACpB;AAAA,EAEM,SAASyB,GAAa6C,GAAqC;AAAA,WAAA/G,EAAA;AAC/D,UAAI,CAAC,KAAK,cAAc,CAAC,KAAK;AAC5B;AAGI,YAAA6J,IAAoB,MAAM5E,GAAkB;AAAA,QAChD,KAAK;AAAA,MAAA,GAGD6E,IAAQ,IAAIjF,GAAegF,CAAiB,EAAE;AAAA,QAClD,KAAK,YAAY;AAAA,MAAA;AAOb,YALUA,EAAkB;AAAA,QAChCC;AAAA,QACA,KAAK,YAAY,QAAQ1C,GAAK;AAAA,MAAA,EAGlB,SAASlD,GAAK6C,CAAK;AAAA,IACnC;AAAA;AACF;AC1Ca,MAAAgD,KAAc,CACzBC,GACAvH,MACGzC,EAAA;AACG,QAAAiK,IACJD,EAAU,WAAA,EAAa;AACzB,MAAIE,IAAmB,CAAA,GAEnBC,IAAsB;AACtB,EAAA,MAAM,QAAQF,CAAgB,KAChCE,IAAcF,EAAiB,CAAC,GAChCC,IAAmBD,EAAiB,CAAC,KAErCE,IAAcF,KAAoB;AAGpC,QAAMG,IACJ,MAAM3H,EAAU,SAAS0H,CAAW;AAEtC,MAAI,CAACC;AACG,UAAA,IAAI,MAAM,sCAAsC;AAGxD,SAAAA,EAAS,2BAA2BJ,EAAU,KAAK,IAAIE,CAAgB,GAEhE,EAAE,UAAAE,GAAU,UAAUF;AAC/B,IAEaG,KAAqB,CAChCL,GACAvH,MACGzC,EAAA;AACG,QAAA,EAAE,UAAAoK,GAAU,UAAAxG,IAAW,OAAO,MAAMmG,GAAYC,GAAWvH,CAAS;AAEnE,SAAA;AAAA,IACL,aAAa,CAAC6H,GAAqBC,MAC1BH,EAAS,YAAYE,GAAaC,CAAQ;AAAA,IAEnD,SAAS,CAACD,GAAqBpC,MACtBkC,EAAS,QAAQE,GAAapC,GAAOtE,CAAQ;AAAA,EACtD;AAEJ;AAEO,MAAM4G,GAAa;AAAA,EAIxB,YAAmB/H,GAAsB;AAAtB,SAAA,YAAAA,GAHX,KAAA,gCAAgB,OAChB,KAAA,wCAAwB;EAEU;AAAA,EAEpC,QACJ6H,GACApC,GACAgC,GACA;AAAA,WAAAlK,EAAA;AACA,YAAMyK,IAAiB,KAAK,UAAU,IAAIH,CAAW;AAErD,UAAI,CAACG;AACH,cAAM,IAAI,MAAM,qCAAqCH,CAAW,GAAG;AAK9D,aAFU,MAAMG,EAAe,MAAMvC,GAAOgC,CAAgB;AAAA,IAGrE;AAAA;AAAA,EAEA,YAAYI,GAAqBC,GAAwB;AAClD,SAAA,UAAU,IAAID,GAAaC,CAAQ;AAAA,EAC1C;AAAA,EAEA,2BAA2BG,GAAgB3D,GAA6B;AACjE,SAAA,kBAAkB,IAAI2D,GAAQ3D,CAAK;AAAA,EAC1C;AACF;AChFA,MAAM4D,KAAoB,CAACC,OAClB;AAAA,EACL,OAAOA,EAAS;AAAA,EAChB,IAAIA,EAAS,GAAG,SAAS;AAAA;AAI7B,MAAMC,WAAsBL,GAAa;AAAA,EACvC,YAAY/H,GAAsB;AAChC,UAAMA,CAAS,GAEf,KAAK,YAAY,QAAQ;AAAA,MACvB,OAAO,CAAOyF,GAA4BgC,MAAqBlK,EAAA;AAC7D,cAAM8K,IAAS5C,EAAM,QACf6C,IAAS,wCACTC,IAASvI,EAAU,IAAI,SAAS,EAAE,MAClCwI,IAAaf,EAAiB,cAAc,IAM5C7E,IAAO,OAJI,MAAM;AAAA,UACrB,GAAG4F,CAAU,WAAWH,CAAM,WAAWC,CAAM,WAAWC,CAAM;AAAA,QAAA,GAGtC;AAErB,eAAA3F,IAAOsF,GAAkBtF,CAAI,IAAI;AAAA,MAC1C;AAAA,IAAA,CACD,GAED,KAAK,YAAY,SAAS;AAAA,MACxB,OAAO,CAAO6F,GAAQhB,MAAqBlK,EAAA;AACzC,cAAM+K,IAAS,IACTC,IAASvI,EAAU,IAAI,SAAS,EAAE,MAClCwI,IAAaf,EAAiB,cAAc,IAS5C7E,IAAO,OAJI,MAAM;AAAA,UACrB,GAAG4F,CAAU,kBAAkBF,CAAM,WAAWC,CAAM;AAAA,QAA+C,GAG3E;AAErB,eAAA;AAAA,UACL,QAAQ3F,EAAK,WAAW,CAAA,GAAI,IAAI,CAACV,MACxBgG,GAAkBhG,CAAI,CAC9B;AAAA,UACD,aAAYU,KAAA,gBAAAA,EAAM,iBAAgB;AAAA,QAAA;AAAA,MAEtC;AAAA,IAAA,CACD;AAAA,EACH;AACF;AAEa,MAAA8F,KAAsB,CAAO1I,MAAyBzC,EAAA;AACvD,EAAAyC,EAAA,cAAc,iBAAiB,MAChC,IAAIoI,GAAcpI,CAAS,CACnC;AACH,IChDM2I,KAAqB,CACzB3I,GACA/B,GACAsJ,GACA5B,GACAhJ,MAEOqD,EACJ,SAAS,mBAAmB,EAC5B,KAAK,CAAC4I,OACaA,EAAA,kBAAkB3K,GAAMsJ,CAAS,GAC5CsB,GAAgB7I,GAAW/B,GAAM0H,MAAO,MAAM;AAAA,IAAK1H,GAAMtB,CAAO,EACxE,GC3BCmM,IAAW,CAACxE,GAAYyE,GAAgBC,MAAoB;AAChE,EAAI1E,KACC0E,EAAA,MAAM,YAAYD,GAAQzE,CAAK;AAEtC,GAEa2E,KAAc,CAACC,GAA8BF,MAAoB;AtCN9E,MAAA3J,GAAAC,GAAAwB,GAAAC,GAAAlJ,GAAAsR,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AsCOE,EAAAV,GAASzJ,IAAA6J,EAAQ,WAAR,gBAAA7J,EAAgB,SAAS,mBAAmB2J,CAAE,GACvDF,GAASxJ,IAAA4J,EAAQ,WAAR,gBAAA5J,EAAgB,WAAW,qBAAqB0J,CAAE,GAC3DF,GAAShI,IAAAoI,EAAQ,WAAR,gBAAApI,EAAgB,MAAM,gBAAgBkI,CAAE,GACjDF,GAAS/H,IAAAmI,EAAQ,WAAR,gBAAAnI,EAAgB,MAAM,gBAAgBiI,CAAE,GACjDF,GAASjR,IAAAqR,EAAQ,WAAR,gBAAArR,EAAgB,MAAM,gBAAgBmR,CAAE,GACjDF,GAASK,IAAAD,EAAQ,WAAR,gBAAAC,EAAgB,UAAU,qBAAqBH,CAAE,GAE1DF,GAASM,IAAAF,EAAQ,YAAR,gBAAAE,EAAiB,IAAI,gBAAgBJ,CAAE,GAChDF,GAASO,IAAAH,EAAQ,YAAR,gBAAAG,EAAiB,IAAI,gBAAgBL,CAAE,GAChDF,GAASQ,IAAAJ,EAAQ,YAAR,gBAAAI,EAAiB,IAAI,gBAAgBN,CAAE,GAChDF,GAASS,IAAAL,EAAQ,YAAR,gBAAAK,EAAiB,IAAI,gBAAgBP,CAAE,GAChDF,GAASU,IAAAN,EAAQ,YAAR,gBAAAM,EAAiB,IAAI,gBAAgBR,CAAE,GAEvCF,EAAAI,EAAQ,WAAW,gBAAgBF,CAAE,GACrCF,EAAAI,EAAQ,cAAc,mBAAmBF,CAAE,GAC3CF,EAAAI,EAAQ,gBAAgB,sBAAsBF,CAAE,GAChDF,EAAAI,EAAQ,YAAY,iBAAiBF,CAAE;AAClD,GCxBMS,KAAiB,CAACC,MAA+B;AACrD,QAAMC,IAAmC,CAAA;AAEzC,gBAAO,KAAKD,CAAK,EAAE,QAAQ,CAACjI,MAAQ;AAClC,IAAIA,EAAI,QAAQ,MAAM,IAAI,OACfkI,EAAAlI,CAAG,IAAIiI,EAAMjI,CAAG;AAAA,EAC3B,CACD,GAEMkI;AACT,GAEaC,KAA4B,CACvCC,GACAhT,MACG;AACG,QAAA6S,IAAQD,GAAe5S,CAAC;AACvB,SAAA,QAAQ6S,CAAK,EAAE,QAAQ,CAAC,CAACjI,GAAK6C,CAAK,MAAM;AAC9C,IAAAuF,EAAK,MAAM,YAAYpI,EAAI,QAAQ,QAAQ,EAAE,GAAG6C,CAAK;AAAA,EAAA,CACtD;AACH;;;;;;ACmBa,MAAAwF,KAAkB,CAC7BC,MACG;AxCzCL,MAAA1K;AAAA,EwC0CE,MAAM2K,UAA6BD,EAAW;AAAA,IAA9C,cAAA;AAAA,YAAA,GAAA,SAAA,GAuBkB,KAAA,QAAA,IAEhB,KAAQ,sBAAsB,IAAIE;AAAAA,QAChC;AAAA,QACArD;AAAA,QACA;AAAA,MAAA,GAEF,KAAA,oBAAoB,IAAIqD,GAAgB,MAAMtD,IAAiB,CAAA,CAAE,GACjE,KAAA,sBAAsB,IAAIsD,GAAgB,MAAMjD,IAAe,CAAA,CAAE,GACjE,KAAA,mBAAmB,IAAIiD,GAAgB,MAAMnD,IAAY,CAAA,CAAE,GAC3D,KAAQ,kBAAkB,IAAImD,GAAgB,MAAMlD,IAAW,CAAA,CAAE,GAOvD,KAAA,UAAA,IAAIE,GAAkB,IAAI,GASpC,KAAA,UAA+B,IAG/B,KAAA,SAA8B,IAG9B,KAAA,aAAkC;IAAC;AAAA,IAE1B,oBAAoB;AAC3B,YAAM,kBAAkB,GAEpB,KAAK,cACF,KAAA,QAAQ,aAAa,KAAK,SAAS,GACtBzE,GAAA,YAAY,KAAK,SAAS,EAAE;AAAA,QAC5C,CAAO4E,MAAsB7J,EAAA;AxCzGvC,cAAA8B;AwC0GY,gBAAM6K,IAAgB9C,EAAkB,MAAM,IAAI,KAAK,KAAK;AAC5D,cAAI8C,GAAe;AACZ,iBAAA,0BAA0B9C,EAAkB,OAAO;AAAA,cACtD;AAAA,cACA,CAACzE,GAAQC,MAAS;AAChB,gBACEsH,EAAc,OAAOtH,EAAK,KAAK,MAE/B,KAAK,eAAeA,EAAK,KAAK,WAAW,UAAU;AAAA,cAEvD;AAAA,YAAA,GAEG,KAAA,yBAAyBwE,EAAkB,OAAO;AAAA,cACrD;AAAA,cACA,CAACzE,GAAQC,MAAS;AAChB,gBACEsH,EAAc,OAAOtH,EAAK,KAAK,MAE/B,KAAK,YAAYA,EAAK,KAAK,WAAW,OAAO;AAAA,cAEjD;AAAA,YAAA,GAEG,KAAA,wBAAwBwE,EAAkB,OAAO;AAAA,cACpD;AAAA,cACA,CAACzE,GAAQC,MAAS;AAChB,gBACEsH,EAAc,OAAOtH,EAAK,KAAK,MAE/B,KAAK,WAAWA,EAAK,KAAK,WAAW,MAAM;AAAA,cAE/C;AAAA,YAAA;AAGF,kBAAMuH,IAAS;AAEf,iBAAK,eAAeD,EAAc,MAAM,KAAK,SAAU,GAEvD,KAAK,eAAeE,GAAaF,GAAeC,CAAM,CAAC,GAClD,KAAA,eAAeD,EAAc,WAAW,UAAU,GAClD,KAAA,YAAYA,EAAc,WAAW,OAAO,GAC5C,KAAA,WAAW,KAAK,MAAM;AAErB,kBAAAG,IAAWH,EACd,YAAYC,CAAM,EAClB,IAAI,CAACG,MAAUF,GAAaE,CAAK,CAAC;AAEhC,iBAAA,kBAAkB,SAASD,CAAQ;AAKxC,kBAAMzB,KAFJ,MAAM,KAAK,UAAW,SAAS,mBAAmB,GAEjB;AAAA,gBACjCvJ,IAAA,KAAK,eAAL,gBAAAA,EAAiB,SAAQ;AAAA,YAAA;AAE3B,YAAIuJ,EAAkB,QACFA,EAAA,KAAK,CAAC2B,MAAyB;AAC/C,mBAAK,YAAYA,EAAgB;AAAA,YAAA,CAClC;AAAA,UAEL;AAAA,QACF;AAAA,MAAA;AAAA,IAGN;AAAA,IAES,uBAA6B;AACpC,YAAM,qBAAqB,GAEvB,KAAK,2BACP,KAAK,wBAAwB,GAE3B,KAAK,0BACP,KAAK,uBAAuB,GAE1B,KAAK,yBACP,KAAK,sBAAsB,GAGzB,KAAK,gBACP,KAAK,aAAa;AAAA,IAEtB;AAAA,IAES,UAAU;AACjB,MAAI,KAAK,aACF,KAAA,QAAQ,aAAa,KAAK,SAAS,GAE1CtB,GAAY,KAAK,SAAU,KAAK,WAAmB,IAAI,GAEtD,KAAK,WAAmB,KAAK,MAAM;AAAA,QAClC;AAAA,QACA,KAAK,OAAO,SAAS,SACjB,sBACA,OAAO,KAAK,OAAO,QAAQ,gBAAgB;AAAA,MAAA,GAGjDW,GAA2B,KAAK,WAAmB,MAAM,KAAK,UAAU;AAAA,IAC1E;AAAA,IAEQ,eAAetF,GAA4B;AAC5C,WAAA,oBAAoB,SAASA,CAAK,GACvC,KAAK,aAAaA;AAAA,IACpB;AAAA,IACQ,YAAYA,GAA4B;AACzC,WAAA,iBAAiB,SAASA,CAAK,GACpC,KAAK,UAAUA;AAAA,IACjB;AAAA,IACQ,WAAWA,GAA4B;AACxC,WAAA,gBAAgB,SAASA,CAAK,GACnC,KAAK,SAASA;AAAA,IAChB;AAAA,IACQ,eAAeA,GAA4B;AACjD,WAAK,aAAaA,GACb,KAAA,oBAAoB,SAASA,CAAK,GAClC,KAAA,QAAQ,cAAcA,CAAK;AAAA,IAClC;AAAA,EACF;AApLM,SAAA0F,EACG,SAAS;AAAA,KACb3K,IAAA0K,EAA4C,WAA5C,OAAA1K,IAAsD,CAAC;AAAA,IACxDd;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAA,GAiBKC,EAAA;AAAA,IAFNgM,GAAQ,EAAE,SAAS3D,IAAkB;AAAA,IACrCpI,GAAS,EAAE,WAAW,IAAO;AAAA,EAAA,GAnB1BuL,EAoBG,WAAA,aAAA,CAAA,GAGPxL,EAAA;AAAA,IADCC,GAAS;AAAA,EAAA,GAtBNuL,EAuBJ,WAAA,SAAA,CAAA,GAoBAxL,EAAA;AAAA,IADCE,EAAM;AAAA,EAAA,GA1CHsL,EA2CJ,WAAA,cAAA,CAAA,GAGAxL,EAAA;AAAA,IADCE,EAAM;AAAA,EAAA,GA7CHsL,EA8CJ,WAAA,aAAA,CAAA,GAGAxL,EAAA;AAAA,IADCE,EAAM;AAAA,EAAA,GAhDHsL,EAiDJ,WAAA,WAAA,CAAA,GAGAxL,EAAA;AAAA,IADCE,EAAM;AAAA,EAAA,GAnDHsL,EAoDJ,WAAA,UAAA,CAAA,GAGAxL,EAAA;AAAA,IADCE,EAAM;AAAA,EAAA,GAtDHsL,EAuDJ,WAAA,cAAA,CAAA,GA+HKA;AACT;","x_google_ignoreList":[1,2,3,4,6,7,8,9,10,11,12,13,14,15,22,23,24,25,26,27]}